Java Network

How to control transaction from the client code

Sometimes it is necessary for the client to start a transaction with which to execute EJB methods. In this scenario, the client has to propagate a transaction to the EJB container. To start a transaction in the client layer, first create an instance of the JNDI context and use it to acquire a UserTransaction instance. This trick should only be used with session or BMP beans.
The EJB to be used should not declare its transaction level to be RequiresNew, Never, or NotSupported; anything else will work correctly (Required, Supports, or Mandatory).