Cosminexus V9 アプリケーションサーバ メッセージ(構築/運用/開発用)
KFCB40136-W
A global transaction is taking too long to complete. (status = aa....aa, global transaction ID = bb....bb, info = cc....cc)
- aa....aa:決着処理に時間が掛かっているトランザクションのステータス
bb....bb:決着処理に時間が掛かっているトランザクションのアプリケーションサーバのグローバルトランザクションID
cc....cc:保守情報
- [要因]
- グローバルトランザクションの決着処理に時間が掛かっています。
- OpenTP1から伝播したトランザクションの状態が,Prepared状態またはヒューリスティック決着状態(HeuristicHazard,HeuristicMixed,HeuristicRollback,HeuriticCommit)に遷移してから30秒以上経過すると,このメッセージを出力します。
- bb....bbで出力されたトランザクションがアプリケーションサーバ内に残るおそれがあります。
- [対策]
- トランザクションの状態aa....aaに応じて対処してください。
- aa....aaがPreparedの場合
OpenTP1のトランザクションの状態を確認し,状態に応じてアプリケーションサーバのコマンドを使用してトランザクションを決着してください。
手順を次に示します。
- アプリケーションサーバのcjlisttrnコマンドを実行し,アプリケーションサーバに関連づいたOpenTP1のトランザクショングローバル識別子を確認します。このとき-gidオプションにbb....bbで出力されたグローバルトランザクションIDを指定します。
bb....bbの値がd13800010000000000000000000000fefb58e6480000000000000001の場合のコマンド実施例を次に示します。
> cjlisttrn MyServer -gid d13800010000000000000000000000fefb58e6480000000000000001 -tp1
[Global transaction information]
Status GlobalTransactionId ElapsedTime BranchType TP1TRNGID TP1TRNBID
----------------- -------------------------------------------------------- ----------- ---------- ---------------- ----------------
Prepared d13800010000000000000000000000fefb58e6480000000000000001 30 Sub cab9TP1S0000074f @@@@TP1S0000074f
total count:1
|
- 1.で表示されたトランザクショングローバル識別子を持つトランザクションの状態をOpenTP1のtrnlsコマンドで確認します。OpenTP1でのコマンド実行例を次に示します。
> trnls -T cab9TP1S0000074f
|
- OpenTP1のトランザクションの状態によってトランザクションの決着方法が異なります。
- OpenTP1のトランザクション情報が出力されない場合
OpenTP1のコマンド実施結果を次に示します。
> trnls -T cab9TP1S0000074f
TRNGID TRNBID 状態 PID サーバ
|
アプリケーションサーバのトランザクションをcjrollbacktrnコマンドを使用しロールバックで決着します。
アプリケーションサーバのコマンド実行例を次に示します。
> cjrollbacktrn MyServer -gid d13800010000000000000000000000fefb58e6480000000000000001
|
- OpenTP1のトランザクションの状態がHEURISTIC_FORGETTINGの場合
OpenTP1のコマンド実行結果を次に示します。
> trnls -T cab9TP1S0000074f
TRNGID TRNBID 状態 PID サーバ
cab9TP1S0000074f TP1STP1S0000074f HEURISTIC_FORGETTING(u,n) 30446 TP1S
|
アプリケーションサーバのトランザクションをcjcommittrnコマンドを使用しコミットで決着します。
アプリケーションサーバのコマンド実行例を次に示します。
> cjcommittrn MyServer -gid d13800010000000000000000000000fefb58e6480000000000000001
|
- OpenTP1のトランザクションの状態がHEURISTIC_COMMITまたはHEURISTIC_ROLLBACK状態の場合
トランザクションの状態がHEURISTIC_COMMITの場合のOpenTP1のコマンド実行結果を次に示します。
> trnls -T cab9TP1S0000074f
TRNGID TRNBID 状態 PID サーバ
cab9TP1S0000074f TP1STP1S0000074f HEURISTIC_COMMIT(u,n) 30446 TP1S
|
OpenTP1に関連づいたリソースマネジャが,コミット決着またはロールバック決着したかを確認してください。リソースマネジャのトランザクションの決着種別に応じて,アプリケーションサーバが管理するトランザクションをcjcommittrnコマンドまたはcjrollbacktrnコマンドで決着してください。
トランザクションをコミットする場合のアプリケーションサーバのコマンド実行例を次に示します。
> cjcommittrn MyServer -gid d13800010000000000000000000000fefb58e6480000000000000001
|
OpenTP1のトランザクションの復旧はOpenTP1の運用に従ってください。
- OpenTP1のトランザクションの状態が上記以外の場合
OpenTP1はトランザクションを決着処理中です。
しばらく時間をおき,トランザクションの状態ごとの上記の手順に従って,必要に応じてトランザクションを決着してください。
- aa....aaがHeuristicHazard,HeuristicMixed,HeuristicRollback,HeuriticCommitの場合
アプリケーションサーバに関連づいたリソースの一貫性が保たれていないおそれがあります。次の手順に従って,アプリケーションサーバに関連づいたリソースの状態を確認し,トランザクションを強制終了してください。
- アプリケーションサーバに関連づいたリソースで,bb....bbに出力されたグローバルトランザクションIDを持つトランザクションが,コミット決着またはロールバック決着したかを確認してください。また,トランザクションの一貫性が保たれていない場合は修復してください。
- cjforgettrnコマンドでアプリケーションサーバのトランザクションを強制終了してください。
bb....bbの値がd13800010000000000000000000000fefb58e6480000000000000001の場合のコマンド実行例を次に示します。
> cjforgettrn MyServer -gid d13800010000000000000000000000fefb58e6480000000000000001
|
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.