9.3.5 JTAによるトランザクション実装時の注意事項

JTAを使用してトランザクションを実装したプログラムは,J2EEサーバの動作モードによって異なる動作をする場合があります。ベーシックモードの場合のプログラムの処理内容,および動作を次に示します。1.4モードの場合については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.4.11 JTAによるトランザクション実装時の注意事項」を参照してください。

表9-25 ベーシックモードの場合のJTAの動作

処理の内容動作
  • EJB呼び出しで,java.rmi.RemoteExceptionまたはjava.rmi.RemoteExceptionを継承した例外が発生した場合
  • CORBAのシステム例外が発生した場合
クライアント側のトランザクションは,ロールバックにマークされません。
トランザクションタイムアウト発生後に,javax.transaction.UserTransaction.commitメソッドを呼び出した場合java.lang.IllegalStateException例外が発生します。
トランザクションタイムアウト発生後にjavax.transaction.UserTransaction.rollbackメソッドを呼び出した場合java.lang.IllegalStateException例外が発生します。
トランザクションタイムアウト後のjavax.transaction.UserTransaction.getStatusメソッドの戻り値javax.transaction.Status.STATUS_NO_TRANSACTIONが返されます。
javax.ejb.SessionSynchronizationを実装したEJBのbeforeCompletionメソッド,またはafterCompletionメソッドからのEJB呼び出し呼び出せません。呼び出すと,javax.transaction.SystemException例外が発生します。