Bean method runs in the context of the caller�s transaction [Note A].
[A] The caller can be another enterprise bean or an arbitrary client program.
can someone tell me how a client other than a bean will have a transaction context be associated with.
Assume i have a bean class with CMT. And i am calling methodA in the bean which starts out a transaction(having Required/Required_new attribures).This is followed by the subsequent calls to the other methods of the bean class which are all having their own transaction attributes that might let the bean to continue with the existing transaction context,else to start a new one, or even to destroy the existing.
my doubt is,
1. when the container does the commit for the existing transaction started by the first method.
2.In core specs page no 360, first case under container's action why there is no info about calling setRollbackOnly().Is it not possible to set the transaction to rollback when it's the one from the caller's
You can use Application Client (which is similar to standalone java client) to call EJB and this client can create a transaction prior to calling.
"The client can leverage standard J2EE artifacts such as InitialContext, UserTransaction, and EJBs."
Read more about Application Client:
J2EE Application Client
first case under container's action why there is no info about calling setRollbackOnly().Is it not possible to set the transaction to rollback when it's the one from the caller's
The first action that container will take is to propagate back the exception (along with marking Tx for rollback if needed) . Since the transaction was initiated by the client. It is the client which will rollback after checking for status and knowing if setRollback was invoked by another bean that took part in Tx.
So - the one who starts it : in that bean there is a check for the status and rolling back if needed.