Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

9.11.9 トランザクションリカバリ

J2EEサーバやリソースマネジャの障害で,プリペア状態またはヒューリスティック完了状態となった2フェーズトランザクションを決着させる機能です。グローバルトランザクションを使用する場合に有効になります。

J2EEサーバを開始すると,インポートされているリソースに対して,無条件にトランザクションの全面回復処理を実行します。また,トランザクション実行中にリソースマネジャがダウンした場合にも,部分回復処理をします。

なお,トランザクションの状態は,インプロセストランザクションサービスを使用している場合,サーバ管理コマンドのcjlisttrnコマンドで表示できます。また,停止中のJ2EEサーバのステータスファイルに残っている,未決着トランザクション情報はcjlisttrnfileコマンドで表示できます。

ライトトランザクションが有効なときには,トランザクションリカバリ機能は使用できません。

注意
J2EEサーバ再起動によるトランザクションリカバリをしない場合,トランザクションの回復は各リソースの回復手順に従い,ユーザ責任で手動回復してください。
<この項の構成>
(1) J2EEサーバ終了時の未決着トランザクションの確認とタイムアウトの設定
(2) 注意事項

(1) J2EEサーバ終了時の未決着トランザクションの確認とタイムアウトの設定

J2EEサーバを正常停止する時,J2EEサーバは未決着のトランザクションがないことを確認してから停止します。未決着のトランザクションがあるときは,それらが完了するまで無限に待ちます。また,そのトランザクションが決着するまでリソースを削除できません。

これに対して,システム開発時など,トランザクションを早急に解決する必要がない場合は,未決着トランザクションの確認時間にタイムアウトを設定できます。タイムアウトが発生した場合は,未決着のトランザクションの確認処理が完了していなくても,J2EEサーバの停止処理がされます。ただし,タイムアウトは,J2EEアプリケーション開発時などに設定してください。J2EEアプリケーション運用時には,トランザクションの信頼性を保証するために,タイムアウトを設定しないことをお勧めします。

タイムアウトの設定は,J2EEサーバのプロパティをカスタマイズして設定します。J2EEサーバの動作設定のカスタマイズについては,マニュアル「Cosminexus システム構築ガイド」を参照してください。

(2) 注意事項

トランザクションリカバリについての注意事項を説明します。

(a) J2EEサーバ起動時にリソースアダプタの開始に失敗した場合の注意

J2EEサーバ起動時にXATransactionを利用するリソースアダプタの開始に失敗した場合,J2EEサーバはトランザクションリカバリを実行しないで,メッセージKDJE48605-Eを出力して強制停止します。この場合は,リソースアダプタの開始処理が失敗する原因を取り除いてから,J2EEサーバを再起動してください。これによって,プリペア状態またはヒューリスティック状態のトランザクションは決着されます。

(b) J2EEサーバを再起動する時の注意
(c) トランザクションリカバリを実行するための権限
(d) 使用するコネクション数

トランザクションリカバリをする場合に使用するコネクション数に注意してください。

J2EEサーバでは,トランザクションサポートレベルがXATransactionの一つのリソースアダプタに対して,次のコネクションを確立します。

同一のリソースマネジャで必要となる最大コネクション数は,次の式で示す値になります。リソースマネジャにコネクション数の上限がある場合は,注意してください。

同一のリソースマネジャで必要となる最大コネクション数=IR(1) + … + IR(N) + N
IR(i)
i番目のリソースアダプタのプール設定値の最大コネクション数。
1≦i≦Nです。
N
  • Connector 1.0仕様に準拠したリソースアダプタの場合は,同一のリソースマネジャに接続するリソースアダプタ数。
  • Connector 1.5仕様に準拠したリソースアダプタの場合は,同一のリソースマネジャに接続するリソースアダプタ内のコネクション定義数の総数。
対象になるのは,開始状態で,かつトランザクションサポートレベルがXATransactionのリソースアダプタです。