2.128.1 pdtrndecの形式と規則
(1) 機能
障害発生後のHiRDBの再開始時,又はHiRDBの正常終了時に,未決着状態のトランザクションがある場合(KFPS00992-Eメッセージが出力されます),このトランザクションを強制的に決着します。
未決着状態のトランザクションがあるときの対処方法については,マニュアル「HiRDB システム運用ガイド」を参照してください。
(2) 実行者
HiRDB管理者が実行できます。
(3) 形式
pdtrndec -i 入力ファイル名〔,入力ファイル名〕… 〔-r ロールバックスクリプトファイル名〕 〔-o 出力先ディレクトリ名〕
(4) オプション
(a) -i 入力ファイル名〔,入力ファイル名〕… 〜<パス名>((1〜4096))
syslogfileのKFPS00990-Iメッセージを抽出して作成したファイルを,絶対パス名で指定します。
- <規則>
-
-
ファイルを複数指定する場合は,コンマを含めて4,096文字以内で指定してください。
-
KFPS00990-Iメッセージを抽出したファイル以外のファイルを指定した場合,コマンドの実行結果は保証されません。
-
入力ファイル名には空白を含んでいてはいけません。
-
入力ファイル中の該当するトランザクションの情報が欠落している場合(不当な入力ファイルを指定した場合も含む),トランザクションは決着しないで決着保留となります。
-
(b) -r ロールバックスクリプトファイル名 〜<パス名>((1〜4107))
事前に実行したpdtrndecコマンドの出力ファイル(pdtrnrbk.bat)を指定します。
このオプションを指定した場合は,ロールバックスクリプトファイル中で決着対象としているトランザクションだけを強制的に決着します。pdtrndecコマンドの出力ファイル以外のファイルを指定した場合,コマンドの実行結果は保証されません。
(c) -o 出力先ディレクトリ名 〜<パス名>((1〜4096))
pdtrndecコマンドを実行した場合に出力される実行履歴(pdtrndecout),及びシェルスクリプト(pdtrnrbk.bat)の出力先ディレクトリ名を,絶対パス名で指定します。
- <規則>
-
-
このオプションを省略した場合は,カレントディレクトリが出力先となります。
-
指定した出力先ディレクトリに既に実行履歴,及びシェルスクリプトがある場合,実行履歴は追加書きされ,シェルスクリプトは上書きされます。
-
同時に-rオプションを指定した場合,シェルスクリプトは出力されません。
-
出力先ディレクトリ名には空白を含んでいてはいけません。
-
(5) 規則
-
pdtrndecコマンドは,HiRDBが稼働中のときだけ実行できます。
-
pdtrndecコマンドは,シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。
-
pdtrndecコマンドは,障害発生後のHiRDBの再開始時,又はHiRDBの正常終了時に未決着状態のトランザクションがある場合に実行するものです。したがって,未決着状態のトランザクションがあるかどうか分からない状態で実行すると,不当にトランザクションを決着してしまう可能性があります。
-
pdtrndecコマンドは,複数同時実行しないでください。同時実行した場合,実行結果は保証されません。
(6) 注意事項
-
pdtrndecコマンドを実行する場合,回復不要FESを除くHiRDBの全サーバが稼働中であることを確認してください。稼働していないサーバがある場合,決められた手順でサーバを開始してください。
-
pdtrndecコマンドを実行する場合,HiRDBのクライアント製品(OLTPシステム,HiRDB Datareplicatorなど)が正常に稼働していることを確認してください。稼働していない場合は,各製品で決められた手順で開始してください。ただし,開始していないクライアント製品がある状態で強制的に決着する場合は,次の点に注意してください。
-
コマンド実行後に出力されたシェルスクリプト(pdtrnrbk.bat)を実行すると,コマンド実行後に決着保留としたトランザクションを強制的にロールバックします。したがって,この後に,開始していないクライアント製品を開始すると,HiRDBとクライアント製品の間で同期が取れなくなる可能性があります。
-
-
入力ファイルを指定してpdtrndecコマンドを実行しても未決着状態のトランザクションが残っている場合は,シェルスクリプト(pdtrnrbk.bat)を指定して実行し,未決着状態のトランザクションを決着してください。
-
pdtrndecコマンドは,トランザクションのコミットコマンド,ロールバックコマンドなどの処理完了と同期するため,時間が掛かることがあります。
-
pdtrndecコマンド実行後,pdtrndecコマンドで指定した出力先ディレクトリ下のファイルは削除してください。
-
pdtrndecコマンドの結果は,pdlsコマンド(-d trn指定),コマンド実行時のリターンコード,又はエラーメッセージの有無で確認できます。
コマンド実行時のリターンコードを次に示します。
0:正常終了
- 4:警告終了(一つ以上の未決着状態のトランザクションがあります)
-
メッセージに従って対処した後,再度コマンドを実行してください。
- 8:異常終了
-
メッセージに従って対処した後,再度コマンドを実行してください。
-
pdsetupコマンドで文字コードとしてutf-8,又はutf-8_ivsを選択した場合,pdtrndecの入力ファイルには,BOMを持つファイルを使用できます。なお,pdtrndecの入力ファイルとしてBOMを持つファイルを使用しても,BOMは読み飛ばされます。また,pdtrndecで出力されるファイルにはBOMは付きません。
(7) 出力形式
-
実行履歴(pdtrndecout)
pdtrndec result [1]START TIME:2002/09/05 17:20:08 [2]HOSTNAME [3]TRNGID [4]TRNBID [5]SVID [6]DECISION [7]TIME host1 HRD1unt100020b4d HRD1unt100020034 bes1 COMMIT 17:20:08 host1 HRD1unt100020b22 HRD1unt100020035 bes1 ******** --:--:-- host1 HRD1unt100020b51 HRD1unt100020038 bes1 FORGET 17:20:09 pdtrndec result [1]START TIME:2002/09/05 17:36:47 [2]HOSTNAME [3]TRNGID [4]TRNBID [5]SVID [6]DECISION [7]TIME host1 HRD1unt100020b22 HRD1unt100020035 bes1 ******** --:--:--
- 〔説明〕
-
-
コマンド開始日時(年/月/日 時:分:秒)
-
未決着トランザクションがあったホスト名(32文字以内)
-
未決着トランザクションがあったグローバルトランザクションID(16文字)
-
未決着トランザクションがあったブランチトランザクションID(16文字)
-
未決着トランザクションがあったサーバ名(8文字以内)
-
未決着トランザクションが決着した種別(8文字以内)
種別を次に示します。
種別
意味
処置
COMMIT
強制コミット決着
なし。
ROLLBACK
強制ロールバック決着
なし。
FORGET
強制終了
なし。
FAIL
強制コミット決着,強制ロールバック決着,又は強制終了がエラー
エラー原因を取り除いた後,再度pdtrndecコマンドを実行してください。
********
決着保留
-
HiRDB/シングルサーバの場合,及びHiRDB/パラレルサーバのシステムマネジャユニットの入力ファイルでpdtrndecコマンドを実行した場合
入力ファイルを変更して,再度pdtrndecコマンドを実行してください。
-
HiRDB/パラレルサーバのシステムマネジャがないユニットの入力ファイルでpdtrndecコマンドを実行した場合
シェルスクリプト(pdtrnrbk.bat)を指定して,再度pdtrndecコマンドを実行してください。
-
-
強制決着を実行した時刻(時:分:秒)
-
-
シェルスクリプト(pdtrnrbk.bat)
[1]/HiRDB/bin/pdrbk -x host1 -s bes1 -t HRD1unt100020b22
- 〔説明〕
-
-
トランザクションをロールバック決着するためのコマンドフォーマット
-