Note – If you develop and deploy your EJB components using Sun Java Studio, then you need to
edit the individual bean descriptor settings for bean pool and bean cache. These settings might
not be suitable for production-level deployment.
Tuning the EJB Pool
A bean in the pool represents the pooled state in the EJB lifecycle. This means that the bean does
not have an identity. The advantage of having beans in the pool is that the time to create a bean
can be saved for a request. The container has mechanisms that create pool objects in the
background, to save the time of bean creation on the request path.
Stateless session beans and entity beans use the EJB pool. Keeping in mind how you use stateless
session beans and the amount of trac your server handles, tune the pool size to prevent
excessive creation and deletion of beans.
EJB Pool Settings
An individual EJB component can specify cache settings that override those of the EJB
container in the <bean-pool> element of the EJB component’s sun-ejb-jar.xml deployment
descriptor.
The EJB pool settings are:
■
Initial and Minimum Pool Size: the initial and minimum number of beans maintained in
the pool. Valid values are from 0 to MAX_INTEGER, and the default value is 8. The
corresponding EJB deployment descriptor attribute is steady-pool-size.
Set this property to a number greater than zero for a moderately loaded system. Having a
value greater than zero ensures that there is always a pooled instance to process an incoming
request.
■
Maximum Pool Size: the maximum number of connections that can be created to satisfy
client requests. Valid values are from zero to MAX_INTEGER., and the default is 32. A value of
zero means that the size of the pool is unbounded. The potential implication is that the JVM
heap will be lled with objects in the pool. The corresponding EJB deployment descriptor
attribute is max-pool-size.
Set this property to be representative of the anticipated high load of the system. An very
large pool wastes memory and can slow down the system. A very small pool is also
inecient due to contention.
■
Pool Resize Quantity : the number of beans to be created or deleted when the cache is being
serviced by the server. Valid values are from zero to MAX_INTEGER and default is 16. The
corresponding EJB deployment descriptor attribute is resize-quantity.
Be sure to re-calibrate the pool resize quantity when you change the maximum pool size, to
maintain an equilibrium. Generally, a larger maximum pool size should have a larger pool
resize quantity.
EJB ContainerSettings
SunGlassFishEnterpriseServer2.1PerformanceTuningGuide • January200954