スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)
HiRDBの再開始時又は正常終了時に未決着状態のトランザクション(決着できないトランザクションブランチ)がある場合,KFPS00992-Eメッセージが出力されます。このとき,HiRDB管理者は次に示す手順に従って未決着状態のトランザクションを決着してください。
pd_trn_rerun_branch_auto_decide = Y(省略値)を指定すると,未決着状態のトランザクションを自動決着できます。この自動決着機能では決着できない場合や,自動決着機能を使用しない場合に,次の例題で説明する操作が必要になります。
KFPS00992-Eメッセージを検索して,未決着状態のトランザクションがあるか確認してください。
KFPS00992-E Unable to determine commit or rollback for transaction branch. TRNGID=HRD1unt100020b4d, TRNBID=HRD1unt100020034, server=bes1, service=p_f_sqa_call KFPS00992-E Unable to determine commit or rollback for transaction branch. TRNGID=HRD1unt100020b22, TRNBID=HRD1unt100020035, server=bes1, service=p_f_sqa_call KFPS00992-E Unable to determine commit or rollback for transaction branch. TRNGID=HRD1unt100020b5a, TRNBID=HRD1unt100020036, server=bes1, service=p_f_sqa_call |
未決着状態のトランザクションがない場合はこれ以降の操作は必要ありません。
HiRDBのクライアント製品(OLTPシステム,HiRDB Datareplicatorなど)が正常に稼働しているかを確認してください。稼働していない場合は各製品で決められた手順に従いクライアント製品を開始してください。
なお,停止中のクライアント製品がある状態で,強制的にトランザクションを決着する場合は次に示す点に注意してください。
また,トランザクションの整合性を保つために,これ以降新たなトランザクションを実行しないようにしてください。
全サーバ(回復不要FESを除くすべてのサーバ)が稼働中であることをpdlsコマンドで確認してください。稼働していないサーバがある場合は,そのサーバを開始してください。
なお,停止中のサーバがある状態で,強制的にトランザクションを決着する場合は次に示す点に注意してください。
未決着状態のトランザクションを手動で決着してください。手動での決着方法については,「19.14.2 未決着状態のトランザクションを手動で決着する方法」を参照してください。
grepコマンドを使用してpdtrndecコマンドの入力ファイルを作成してください。システムマネジャがあるユニットだけが対象になります。grepコマンドでKFPS00990-Iメッセージのファイルを作成します。
grep "KFPS00990-I" /usr/adm/OLDsyslogfile >/tmp/unit1syslog.copy grep "KFPS00990-I" /usr/adm/syslogfile >/tmp/unit1syslog2.copy 1 2 3 |
pdtrndec -i /tmp/unit1syslog.copy,/tmp/unit1syslog2.copy |
コマンドの実行結果のDECISION(トランザクションの決着種別)に表示されている内容を確認してください。確認後,〈手順〉のフローチャートに従い操作を続行してください。
pdtrndec result START TIME:2002/09/05 17:20:08 HOSTNAME TRNGID TRNBID SVID DECISION TIME host1 HRD1unt100020b4d HRD1unt100020034 bes1 COMMIT 17:20:08 host1 HRD1unt100020b22 HRD1unt100020035 bes1 ******** --:--:-- host1 HRD1unt100020b51 HRD1unt100020038 bes1 FORGET 17:20:09 pdtrndec result START TIME:2002/09/05 17:36:47 HOSTNAME TRNGID TRNBID SVID DECISION TIME host1 HRD1unt100020b22 HRD1unt100020035 bes1 ******** --:--:-- |
grepコマンドを使用してpdtrndecコマンドの入力ファイルを作成してください。システムマネジャがないすべてのユニットが対象になります。grepコマンドでKFPS00990-Iメッセージのファイルを作成します。
grep "KFPS00990-I" /usr/adm/OLDsyslogfile >/tmp/unit2syslog.copy grep "KFPS00990-I" /usr/adm/syslogfile >/tmp/unit2syslog2.copy 1 2 3 |
(5)と同じ方法でpdtrndecコマンドの入力ファイルを作成してください。
(7)及び(8)で作成した入力ファイルを使用してpdtrndecコマンドでトランザクションを決着させてください。1回目のpdtrndecコマンドの実行後,最終ステータスのリターンコードが4で,DECISIONの表示内容に”********”がある場合は,次に示すオプションを指定して再度pdtrndecコマンドを実行してください。
pdtrndec -i /tmp/unit1syslog.copy,/tmp/unit1syslog2.copy,/tmp/unit2syslog.copy, /tmp/unit2syslog2.copy -r pdtrnrbk.bat |
KFPS00982-Eメッセージが出力されていて,かつpdtrnrbk.batファイルが作成されている場合は,そのpdtrnrbk.batファイルは使用しないで削除してください。
トランザクションが決着したかどうかをpdls -d trnコマンドで確認してください。未決着状態のトランザクションがまだある場合は,出力されたメッセージやコマンドの実行結果を参照してエラーの原因を対策し,手順(7)からの操作を繰り返してください。
pdls -d trn HOSTNAME : host1(153415) TRNGID TRNBID STATUS PID SVID B-SVID |
未決着状態のトランザクションがすべて決着すると,30秒以内にKFPS02183-Iメッセージが出力されます。30秒を経過してもKFPS02183-Iメッセージが出力されない場合は,まだ未決着状態のトランザクションがあります。この場合は最初から操作を繰り返してください。
pdtrndecコマンドで指定した出力先ディレクトリ下のファイル(pdtrndecout,pdtrnrbk.batなど)を削除してください。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.