3.4.4 トランザクションサービスで提供する機能
トランザクションサービスでは,次に示す機能を提供します。なお,アプリケーションサーバでは,トランザクションサービスはJ2EEサーバのインプロセスで起動します。
-
グローバルトランザクションの開始,コミット決着,ロールバック決着の制御
2フェーズコミットプロトコルによってトランザクション処理を制御します。2フェーズコミットプロトコルとは,同期点での処理をプリペア処理(資源のアップデート準備)とコミット処理(資源のアップデート処理)という2段階に分ける方法です。2フェーズコミットプロトコルでは,DBMSなどの複数のリソースオブジェクトに対して同期を取り,コミットまたはロールバックができます。また,2フェーズコミットプロトコルではトランザクション処理中に障害が発生した場合でも,すべてのリソースオブジェクトを矛盾なく自動的にロールバックできます。
-
トランザクションコンテキストの伝播(RMI-IIOPによるEnterprise Bean呼び出し)
グローバルトランザクションの状態を表すトランザクションコンテキストを管理します。例えば,サーブレット/JSPなどのクライアントがリモートのEnterprise Beanのメソッドを呼び出したとき,クライアント側のトランザクションコンテキストをサーバ側のEnterprise Beanに伝達します。
-
ステータスファイルを使用したトランザクション情報の管理と障害発生後のJ2EEサーバの再起動によるシステム回復
システム障害でJ2EEサーバが停止したときに実行中だったアプリケーションプログラムのトランザクション処理を回復して,ロールバックまたはコミットします。トランザクションをロールバックするか,コミットするかは,トランザクション処理がどこまで進んでいたかで決まります。トランザクション処理が,2フェーズコミットのうち,1フェーズ目の完了前まで進んでいる場合には,グローバルトランザクションをロールバックします。2フェーズコミットのうちの1フェーズ目が完了している場合には,ルートトランザクションブランチでの決定に従って,グローバルトランザクションをロールバック,またはコミットします。
-
ステータスファイルの二重化
ステータスファイルの二重化の機能を使用した場合,一方のステータスファイルが配置されているディスクで障害が発生すると,他方のステータスファイルでトランザクション回復処理が実行されます※。ただし,この機能を利用すると,二重にディスクアクセスするため,オンライン処理の応答時間は遅くなります。
- 注※
-
オンライン処理は継続できません。
-
リソースマネジャでのヒューリスティック決着時のエラー通知
データベースなどのリソースマネジャでのヒューリスティック決着を検知したとき,メッセージによってエラーを通知します。