WebSphere Application Server トランザクション・サービスがスローする例外は、各例外の要約とともにリストされます。
例外は以下のようにグループ化されています
EJB コンテナーがエンタープライズ Bean のビジネス・メソッドからのシステム例外をキャッチしたときに、
メソッドがコンテナーによって管理されているトランザクション内で実行されている場合は、
コンテナーは、例外をクライアントに引き渡す前に、トランザクションをロールバックします。
コンテナー管理トランザクションが管轄する
Bean のビジネス・メソッドによってスローされた例外を、
コンテナーがどのように処理するかについて詳しくは、
Enterprise
JavaBeans 2.0 specification のセクション『Exception handling』
を参照してください。
このセクションでは、ビジネス・メソッドが実行され、そのビジネス・メソッドによって例外がスローされる状況における、コンテナーの機能について説明しています。
また、クライアントが受け取る例外と、クライアントをその例外から回復する方法についても説明しています。
標準的な例外
TransactionRequiredException、TransactionRolledbackException、および InvalidTransactionException などの標準的な例外については
、
Java Transaction API (JTA) 1.0.1 Specification で定義されています。
- InvalidTransactionException
- この例外は、要求に無効なトランザクション・コンテキストが含まれていることを示しています。
- TransactionRequiredException 例外
- この例外は、
要求にヌル・トランザクション・コンテキストが含まれているが、
ターゲット・オブジェクトにはアクティブ・トランザクションが必要であることを示しています。
- TransactionRolledbackException 例外
- この例外は、
その要求の処理に関連したトランザクションがロールバックされたか、
ロールバック用にマークされたことを示しています。したがって、要求された操作は、
実行できなかったか、そのトランザクション用の計算をそれ以上行うことは無意味なため、実行されませんでした。
ヒューリスティック例外
ヒューリスティック判定は、トランザクションに関係する 1 つ以上の参加プログラムが、
トランザクション・サービスによる合意を得ずに、更新のコミットまたはロールバックを一方的に決定するものです。ヒューリスティック判定は、
参加プログラムがすでに準備済みで、コミット処理の第 2 フェーズが進行中のときにのみ発生する問題です。ヒューリスティック判定は、通常、
トランザクション・マネージャーが 2 フェーズ・コミットの中でリソース管理との通信に繰り返し失敗した場合などの
異常な状況下でのみ発生します。ヒューリスティック判定が行われた場合には、
その決定が合意と異なるものとなり、データ保全性が損なわれる危険性があります。
以下のリストでは、
ヒューリスティックな例外について要約しています。詳しくは
、Java Transaction API (JTA) 1.0.1 Specification を参照してください。
- HeuristicRollback 例外
- この例外は、コミット操作時に、ヒュ
ーリスティック判定が行われたこと、および
すべての関連する更新がロールバックされたことをレポートするために引き起こされます。
- HeuristicMixed 例外
- この例外は、コミット操作時に、ヒューリス
ティック判定が行われたこと、および一部の関連する更新がコミットされ、その他はロールバックされたことをレ
ポートするために引き起こされます。