CHAPTER 10 JAVA EE PERFORMANCE ASSESSMENT 285 (Web hosting plans)
Sunday, September 16th, 2007CHAPTER 10 JAVA EE PERFORMANCE ASSESSMENT 285 Component Pools Stateless EJB components such as stateless session beans and message-driven beans are maintained in a pool to avoid creating and destroying them on a per-request basis. They are implemented this way for the same reason that JDBC connections are maintained in a pool: it is more efficient to check an object out of a pool than to create it. Being similar to connection pools, component pools are analyzed using the same metrics: Pool utilization Requests waiting for an object And as before, the analysis is defined as follows: The peak usage should not grow above 80 percent for any significant period of time. The average usage should be in the range of 50 to 70 percent. No threads should be waiting for connections. Periodic occurrences of five or fewer waiting threads are acceptable, but anything more should trigger a critical alert. If the number of waiting threads grows to the number of connections in the pool, then issue a fatal alert. The component pool is saturated and can recover only if the user load diminishes. Typically, the default application server component pool sizing is sufficient, but it is something specific that should be checked in a performance analysis report. Note Component pool sizing presents a theoretical problem, but in practice it is not very problematic. Components are not as expensive to create as database connections and are usually small in size, so application server vendors typically size them very large (for example, I have seen some sized to 1,000, and others can grow indefinitely). To put component pool tuning in perspective, I have to tune database connection pool sizes during almost all tuning engagements, but I have never had to adjust the size of a component pool. Message Servers Message servers are interesting in enterprise environments: they are either not used at all or used very cursorily, or they are an integral part of an application technology stack. In the former, they appear to facilitate asynchronous business processes, such as sending confirmation e-mails. In the latter, they usually appear as integration mechanisms between systems, typically integrating an application server with a mainframe application. The metrics involved in analyzing the performance of message servers are as follows: Message and/or byte upper threshold (If an upper threshold constrains how many messages or how many bytes can reside in the message server at any given time, then what is it?) Current number of messages/bytes in the message server Number of messages rejected from the message server
Note: In case you are looking for affordable and reliable webhost to host and run your j2ee application check Vision J2ee Web Hosting services.