2.25.1 pdcmtの形式と規則
(1) 機能
pdcmtコマンドは,グローバルトランザクションを構成している各トランザクションブランチが,何らかの要因(通信障害など)でトランザクションを決着できない場合に,強制的にトランザクションをコミットするときに使用します。この場合,ほかのトランザクションとの不整合を発生させないために,グローバルトランザクション内のほかのトランザクションもコミットしなければなりません。
pdcmtコマンドは,「pdls -d trn」コマンドを実行して表示された情報中のトランザクション第1状態がREADYでトランザクション第2状態がpのトランザクションを,強制的にコミットします。
(2) 実行者
HiRDB管理者が実行できます。
(3) 形式
(a) HiRDB/シングルサーバの場合
pdcmt 〔{-x ホスト名|-u ユニット識別子}〕 〔-s サーバ名〕 {-A|-t トランザクション識別子}
(b) HiRDB/パラレルサーバの場合
pdcmt {-x ホスト名|-u ユニット識別子} 〔-s サーバ名〕 {-A|-t トランザクション識別子}
(4) オプション
(a) {-x ホスト名|-u ユニット識別子}
該当するトランザクションがあるホストのホスト名,又はユニットのユニット識別子を指定します。
- -x ホスト名 〜<識別子>((1〜32))
-
該当するトランザクションがあるホストのホスト名を指定します。
- -u ユニット識別子 〜<識別子>((4文字))
-
該当するトランザクションがあるユニットのユニット識別子を指定します。
(b) -s サーバ名 〜<識別子>((1〜8))
ユニットに複数のサーバがある場合,サーバを特定するときにサーバ名を指定します。省略した場合,対象となるホスト内のすべてのサーバを対象とします。
(c) -A
-sオプションで指定したサーバ内のトランザクションで,READY状態で回復処理待ち状態のすべてのトランザクションをコミットする場合に指定します。
(d) -t トランザクション識別子 〜<英数字>((16文字))
READY状態で回復処理待ち状態のトランザクションをコミットする場合に,トランザクション識別子を指定します。
(5) 規則
-
pdcmtコマンドは,HiRDBが稼働中のときだけ実行できます。
-
pdcmtコマンドは,サーバマシンごとに実行してください。ただし,ユティリティ専用ユニットのサーバマシンでは実行できません。
(6) 注意事項
-
pdcmtコマンドの結果は,pdlsコマンド(-d trn指定),コマンド実行時のリターンコード,又はエラーメッセージの有無で確認できます。
コマンド実行時のリターンコードを次に示します。
0:正常終了
- 1:異常終了(オプション指定不正,rsh失敗など)
-
コミットができていないトランザクションが残っていることがあります。
メッセージに従って対処した後,再度コマンドを実行してください。
-
回復不要FESに接続して実行したトランザクションは,トランザクション第1状態がREADY,トランザクション第2状態がpの場合でも,強制的にコミットできないことがあります。この場合,トランザクションを自動決着してください。未決着状態のトランザクションを決着する方法の詳細については,マニュアル「HiRDB システム運用ガイド」の「未決着状態のトランザクションを決着する方法」を参照してください。
-
現在は停止しているクライアント製品からの要求で発生した未決着状態のトランザクションを強制的にコミットすると,この後でクライアント製品を開始したときに,HiRDBとクライアント製品との間でこのトランザクションの同期が取れないことがあります。