20.21 コミット処理中に障害が発生したときのトランザクション決着種別の確認方法(HiRDB/パラレルサーバ限定)
実行者 HiRDB管理者
ここでは,コミット処理中に障害が発生したときのトランザクション決着種別の確認方法について説明します。
トランザクションの実行中に障害が発生した場合,サーバごとにコミット処理又はロールバック処理を行います。処理の完了後,サーバごとにトランザクション情報とトランザクション決着種別をKFPS00990-Iメッセージに付加して出力します。また,障害が発生して独自にロールバック決着した場合は,更新ブランチがあったサーバのトランザクション情報とトランザクション決着種別をKFPS00973-Iメッセージに付加して出力します。
障害が発生したときのトランザクション決着種別の確認方法を次の図に示します。UAPにコミットエラーが返信された場合もこの手順に従って確認してください。
- 注※1
-
pdlsコマンドで,全サーバ(回復不要FESを除く全サーバ)が稼働しているかどうかを確認してください。
- 注※2
-
次に示す情報を比べてください。
-
pdls -d trnコマンドの実行結果に出力されたトランザクション識別子
-
KFPS00973-I又はKFPS00990-Iメッセージに出力されたトランザクション識別子
これらのトランザクション識別子が一致していないことを確認してください。一致しているトランザクション識別子がある場合は,そのトランザクションが終了するまで待ってください。
-
- 注※3
-
次に示す情報を比べてください。
-
pdls -d trn -aコマンドの実行結果に出力されたクライアントのプロセスID,IPアドレス,UAPの識別名称
-
コミットエラーになったUAPのプロセスID,IPアドレス,UAPの識別名称
これらの情報が一致するトランザクションがあるかどうかを確認してください。
- すべて(三つ)の情報が一致するトランザクションがある場合
-
該当するトランザクションが終了するまで待ってください。
- UAPの識別名称だけが一致し,プロセスID及びIPアドレスが表示されていないトランザクションがある場合
-
次に示す手順で対処してください。
-
該当するトランザクションのトランザクション識別子を確認してください。
-
pdls -d trn -aコマンドの実行結果を参照してください。1で確認したトランザクション識別子がほかにも表示されていないかを確認してください。
-
ほかにも表示されている場合は,そのトランザクションのクライアントのプロセスIDとIPアドレスが表示されているかどうかを確認してください。表示されたトランザクションがない場合は,トランザクションが終了するまで待ってください。
-
-
コミット時の障害によるトランザクションの決着種別を次の表に示します。なお,表中のトランザクション決着種別は,フロントエンドサーバ又はバックエンドサーバのユニットが異常終了しなかった場合に限ります。
項番 |
障害のタイミング |
フロントエンドサーバ |
バックエンドサーバ 又はディクショナリサーバ |
トランザクション決着種別 |
||
---|---|---|---|---|---|---|
KFPS00973-I,又はKPFS00990-Iメッセージ |
メッセージに出力される決着種別 |
KFPS00973-I,又はKPFS00990-Iメッセージ |
メッセージに出力される決着種別 |
|||
1 |
コミット処理時 |
あり |
コミット |
あり |
コミット |
コミット |
2 |
ロールバック |
ロールバック |
||||
3 |
なし |
− |
コミット |
|||
4 |
ロールバック |
あり |
コミット |
コミット |
||
5 |
ロールバック |
ロールバック |
||||
6 |
なし |
− |
ロールバック |
|||
7 |
なし |
− |
あり |
コミット |
コミット |
|
8 |
ロールバック |
ロールバック |
||||
9 |
なし |
− |
コミット |
|||
10 |
トランザクション決着前 |
あり |
ロールバック |
あり |
ロールバック |
ロールバック |
11 |
なし |
− |
ロールバック |
|||
12 |
なし |
あり |
ロールバック |
ロールバック |
||
13 |
なし |
− |
− |
(凡例)−:該当しません。