■
Cache EJB resources: Use setSessionContext() or ejbCreate() to cache bean resources.
This is again an example of using bean lifecycle methods to perform application actions only
once where possible. Remember to release acquired resources in the ejbRemove() method.
Use the Appropriate Stubs
The stub classes needed by EJB applications are generated dynamically at runtime when an EJB
client needs them. This means that it is not necessary to generate the stubs or retrieve the client
JAR le when deploying an application with remote EJB components. When deploying an
application, it is no longer necessary to specify the --retrieve option, which can speed up
deployment.
If you have a legacy rich-client application that directly uses the CosNaming service (not a
recommended conguration), then you must generate the stubs for your application explicitly
using RMIC. For more information, see
Sun GlassFish Enterprise Server 2.1 Troubleshooting
Guide
for more details.
Remove Unneeded Stateful Session Beans
Removing unneeded stateful session beans avoids passivating them, which requires disk
operations.
Cache and Pool TuningTips
Follow these tips when using the EJB cache and pools to improve performance:
■
Explicitly call remove(): Allow stateful session EJB components to be removed from the
container cache by explicitly calling of the remove() method in the client.
■
Tune the entity EJB component’spool size: Entity Beans use both the EJB pool and cache
settings. Tune the entity EJB component’s pool size to minimize the creation and
destruction of beans. Populating the pool with a non-zero steady size before hand is useful
for getting better response for initial requests.
■
Cache bean-specic resources: Use the setEntityContext() method to cache bean specic
resources and release them using the unSetEntityContext() method.
■
Load related data eciently for container-managed relationships (CMRs). For more
information, see
“Pre-fetching Container Managed Relationship (CMR) Beans” on page 44
■
Identify read-only beans: Congure read-only entity beans for read only operations. For
more information, see
“Read-Only Entity Beans” on page 43
Using Local and Remote Interfaces
This section describes some considerations when EJB components are used by local and remote
clients.
EJB PerformanceTuning
SunGlassFishEnterpriseServer2.1PerformanceTuningGuide • January200936