|
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 |
|
|
|
|
|
|
|