3.4.11 Notes on the JTA-based transaction implementation

The following table describes the processing content and operations of the programs that use the JTA to implement transactions.

Table 3-17 JTA operations

Processing contentOperations
  • When an exception inheriting java.rmi.RemoteException or java.rmi.RemoteException occurs during EJB invocation
  • When a CORBA system exception occurs
Whether the client-side transactions will be marked for rollback varies according to the property (ejbserver.distributedtx.rollbackClientTxOnSystemException) settings. For details on the values set for the properties and the operations, see 3.4.5 Transaction operations during system exceptions.
When the javax.transaction.UserTransaction.commit method is invoked after a transaction timeout occursThe javax.transaction.RollbackException exception occurs. However, if you invoke the UserTransaction.commit method two or more times after a transaction timeout occurs, the java.lang.IllegalStateException exception occurs from the second time onwards.
When the javax.transaction.UserTransaction.rollback method is invoked after a transaction timeout occursAn exception does not occur.
Return value of the javax.transaction.UserTransaction.getStatus method after the transaction timeoutjavax.transaction.Status.STATUS_ROLLEDBACK is returned. However, after the UserTransaction.commit method, or UserTransaction.rollback method is invoked, javax.transaction.Status.STATUS_NO_TRANSACTION is returned.
EJB invocation from the beforeCompletion method or afterCompletion method of the EJB for which javax.ejb.SessionSynchronization is implementedAn exception does not occur and the EJB can be invoked.