EJB Performance Tuning

collection is happening too frequently, and the pool size is growing, but the cache hit rate is small, then the pool-idle-timeout-in-seconds can be reduced to destroy the instances.

Note – Specifying a max-pool-size of zero (0) means that the pool is unbounded. The pooled beans remain in memory unless they are removed by specifying a small interval for pool-idle-timeout-in-seconds. For production systems, specifying the pool as unbounded is NOT recommended.

Monitoring Individual EJB Components

To gather method invocation statistics for all methods in a bean, use this command:

asadmin get -m monitorableObject.*

where monitorableObject is a fully-qualified identifier from the hierarchy of objects that can be monitored, shown below.

serverInstance.application.applicationName.ejb-module.moduleName

where moduleName is x_jar for module x.jar.

.stateless-session-bean.beanName

.bean-pool

.bean-method.methodName

.stateful-session-bean.beanName

.bean-cache

.bean-method.methodName

.entity-bean.beanName

.bean-cache

.bean-pool

.bean-method.methodName

.message-driven-bean.beanName

.bean-pool

.bean-method.methodName (methodName = onMessage)

For standalone beans, use this pattern:

serverInstance.application.applicationName.standalone-ejb-module.moduleName

The possible identifiers are the same as for ejb-module.

For example, to get statistics for a method in an entity bean, use this command:

asadmin get -m serverInstance.application.appName.ejb-module.moduleName

.entity-bean.beanName.bean-method.methodName.*

34

Sun GlassFish Enterprise Server 2.1 Performance Tuning Guide • January 2009

Page 34
Image 34
Sun Microsystems 820434310 manual Monitoring Individual EJB Components, Asadmin get -m monitorableObject