Key points in reading a WebSphere trace file for EJB Container
 Forum/discussion group
 
Abstract
Every invocation of a business method on an Enterprise Java™ Bean (EJB) results in the EJB container performing a sequence of steps: a pre-invoke step, followed by a call to the customer-provided business method on the EJB implementation class, followed by a postinvoke step after the completion of the business method code. The trace file produced by the EJB container includes entries that identify when the EJB container is performing these three steps for every external invocation of EJB business methods, which can be useful to help determine whether the EJB container, or the customer-provided business method, is in control when a potential problem occurs.
 
 
Content
At the beginning of the sequence of EJB invocation steps, the following trace entry appears:

EJSContainer > EJBpreInvoke([n]:[methodName])

This trace entry identifies when the EJB container is starting the preinvoke step. In this trace entry and the entries elsewhere in this document, [n] is a numeric identifier used internally by the EJB container, and [methodName] is a string identifying the name of the corresponding customer-defined business method being invoked. (The brackets are only for clarity and do not appear in the actual trace.) Trace statements occurring after this entry (but prior to the entry below) correspond to actions performed by either the EJB container, other WebSphere® runtime components, or customer-provided 'callback' methods on the EJB implementation class such as ejbActivate() or ejbLoad().

At the end of the preinvoke step, the following trace entry appears:

EJSContainer < EJBpreInvoke([n]:[methodName]) Invoking method '[methodName]' on bean '[beanName]'

At this point, control is transferred to the customer-provided EJB implementation method and the EJB container is no longer involved -- the execution is strictly under the control of the logic in the customer-provided method.

After the completion of the customer-defined business method, control is returned back to EJB container. When control returns to the EJB container, the following trace entry appears, indicating that the postinvoke step is starting:

EJSContainer > EJBpostInvoke([n]:[methodName])

As with the preinvoke step, trace statements appearing after this entry, but prior to the entry below, correspond to actions performed by either the EJB container, other WebSphere runtime components, or customer-provided 'callback' methods on the EJB implementation class such as ejbPassivate() or ejbStore().

At the completion of the postinvoke step, the following trace entry appears:

EJSContainer < EJBpostInvoke([n]:[methodName])

At this point, control is transferred from the EJB container to either a WebSphere runtime component (typically the Object Request Broker or ORB in the case of a remote invocation), or back to the original caller of the business method in the case of a local invocation. Trace entries appearing after the above entry are outside the control of the EJB container.


In summary, the EJB container has control only during the following times -- between the two EJBpreInvoke trace entries:

EJSContainer > EJBpreInvoke([n]:[methodName])
>>> EJB container or WebSphere runtime services in control here <<<
EJSContainer < EJBpreInvoke([n]:[methodName])

and between the two EJBpostInvoke entries:

EJSContainer > EJBpostInvoke([n]:[methodName])
>>> EJB container or WebSphere runtime services in control here <<<
EJSContainer < EJBpostInvoke([n]:[methodName])

Code between the < EJBpreInvoke and > EJBpostInvoke entries is under the control of the customer-provided EJB implementation method.
 
 
Cross Reference information
Segment Product Component Platform Version Edition
Application Servers Runtimes for Java Technology Java SDK
 
 


Document Information


Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server > EJB Container
Operating system(s): z/OS
Software version: 6.1
Software edition:
Reference #: 7008491
IBM Group: Software Group
Modified date: Sep 14, 2006