2.11.1 pdcancelの形式と規則
(1) 機能
UAP又はユティリティを処理するHiRDB側の処理プロセスを,UAP又はユティリティから強制的に切り離し,終了します。
UAPが異常終了などで終了しているのに,HiRDB側の処理プロセスがまだ処理途中の場合は,このコマンドを実行して終了します。このコマンドは,UAPと接続していたHiRDB側のシングルサーバプロセス,又はフロントエンドサーバプロセス及びバックエンドサーバプロセスを強制終了します。
また,実行中のユティリティの処理を中断します。
(2) 実行者
HiRDB管理者が実行できます。
(3) 形式
(a) HiRDB/シングルサーバの場合
pdcancel {-U|-u UAP識別子〔-i プロセスID〕|-i プロセスID -d}
(b) HiRDB/パラレルサーバの場合
pdcancel {-x ホスト名|-X ユニット識別子} {-U|-u UAP識別子 〔-i プロセスID〕|-i プロセスID -d}
(4) オプション
(a) UAPの場合
- -x ホスト名 〜<識別子>((1〜32))
-
該当するUAPが接続しているフロントエンドサーバがあるホストの名称を指定します。ホスト名はpdlsコマンドで確認できます。
- -X ユニット識別子 〜<識別子>((4文字))
-
該当するUAPが接続しているフロントエンドサーバがあるユニットの,ユニット識別子を指定します。
- -U
-
指定したホスト名のユニットで動作している,すべてのUAPを強制終了する場合に指定します。
- -u UAP識別子 〜<文字列>((1〜30))
-
強制終了するHiRDB側の処理プロセスに対応する,クライアントUAPのUAP識別子(PDCLTAPNAME)を指定します。該当するユニットで同一識別子を持つUAPが複数動作している場合は,-iオプションを指定する必要があります。
- -i プロセスID 〜<符号なし整数>((1〜10))
-
強制終了するプロセスのプロセスIDを指定します。-uオプションと同時に指定した場合は,シングルサーバ,又はフロントエンドサーバのプロセスIDを指定してください。-dオプションと同時に指定した場合は,シングルサーバプロセス,ディクショナリサーバプロセス,フロントエンドサーバプロセス,又はバックエンドサーバプロセスを指定してください。プロセスIDは,pdlsコマンド(-dオプションにprcを指定)で表示されます。したがって,該当するUAPのサービス要求受け付け時刻を基にして,強制終了するプロセスのプロセスIDを知ることができます。
- -d
-
HiRDB側の処理プロセスを強制終了する場合に指定します。プロセスがトランザクション処理中の場合は,トランザクション関係にあるディクショナリサーバプロセス,フロントエンドサーバプロセス,及びバックエンドサーバプロセスを強制終了します。
(b) ユティリティの場合
- -x ホスト名 〜<識別子>((1〜32))
-
システムマネジャがあるホストの名称を指定します。ただし,データベース初期設定ユティリティ(pdinit)及びデータベース構成変更ユティリティ(pdmod)を強制終了する場合は,ディクショナリサーバがあるホストの名称を指定してください。
ホスト名はpdlsコマンドで確認できます。
- -X ユニット識別子 〜<識別子>((4文字))
-
ユティリティが動作しているユニットのユニット識別子を指定します。ただし,データベース初期設定ユティリティ及びデータベース構成変更ユティリティを強制終了する場合は,ディクショナリサーバがあるユニットのユニット識別子を指定してください。
ユニット識別子はpdls -d prcコマンドで確認できます。
- -u UAP識別子 〜<識別子>((1〜8))
-
ユティリティの処理をしているサーバの名称を指定します。サーバ名は,pdls -d prc -aコマンドで表示される,"0m"で始まる名称です。例えば,データベース作成ユティリティ(pdload)の場合,サーバ名は"0mload0"と表示されます。ただし,データベース構成変更ユティリティを強制終了する場合は,UAP識別子としてpdmodを指定します。
各ユティリティのサーバの名称を次に示します。
ユティリティ
サーバの名称
データベース初期設定ユティリティ(pdinit)
0minitx※
データベース作成ユティリティ(pdload)
0mloadx※
データベース構成変更ユティリティ(pdmod)
pdmod
データベース再編成ユティリティ(pdrorg)
0mrorgx※
ディクショナリ搬出入ユティリティ(pdexp)
0mexpx※
リバランスユティリティ(pdrbal)
0mrbalx※
空きページ解放ユティリティ(pdreclaim)
0mrorgx※
グローバルバッファ常駐化ユティリティ(pdpgbfon)
0mrorgx※
データベース状態解析ユティリティ(pddbst)
0mdbstx※
最適化情報収集ユティリティ(pdgetcst)
0mgcstx※
データベース複写ユティリティ(pdcopy)
0bcpyx※
データベース回復ユティリティ(pdrstr)
0brstr
- 注※
-
末尾のxは,0,1,2…と数値文字になります。
- -i プロセスID 〜<符号なし整数>((1〜10))
-
強制終了するユティリティのプロセスIDを指定します。ユティリティの場合,このオプションは必ず指定してください。
- -d
-
ユティリティを強制終了する場合に指定します。ユティリティがトランザクション処理中の場合は,トランザクション関係にあるシングルサーバプロセス,ディクショナリサーバプロセス,及びバックエンドサーバプロセスを強制終了します。
(5) 規則
-
pdcancelコマンドは,HiRDBが稼働中のときだけ実行できます。
-
pdcancelコマンドは,任意のサーバマシンから実行できます。
-
pdcancelコマンド(-dオプション指定なし)でUAPと接続していたHiRDB側の処理プロセスを強制終了する場合,強制終了の対象となるプロセスはトランザクション処理中のものだけです。このため,トランザクション開始以前,又はトランザクション終了後であるのに,シングルサーバプロセス,又はフロントエンドサーバプロセスからの応答がUAPに返ってこない場合は,-dオプションを指定してpdcancelコマンドを実行するか,pdkillコマンドでシングルサーバプロセス,若しくはフロントエンドサーバプロセスを終了してください。該当するUAPに対応するプロセスがトランザクション処理中かどうかは,pdlsコマンド(-dオプションにtrn -aを指定)で表示される情報で判別できます。この場合,該当するUAPに関する情報が表示されればトランザクション処理中であり,表示されなければトランザクション処理中でないことになります。
-
UAPが異常終了などで終了しているのに,HiRDB側の処理プロセスがまだ処理途中の場合にpdcancelコマンドを実行しなかったときは,該当するUAPのクライアント環境定義(PDSWAITTIME)で指定した時間でプロセスは強制終了されます。
(6) 注意事項
-
pdcancelコマンドの結果は,pdlsコマンド(-d prc指定)で確認できます。
-
クライアント環境定義のPDCLTAPNAMEに英数字以外の文字を指定した場合,pdcancelコマンドを実行できない場合があります。
-
ユティリティをキャンセルする場合,不当にキャンセルしないように注意してください。
-
pdcancelコマンド実行時のリターンコードは,0の場合は正常終了,8の場合は異常終了(オプション指定不正,rsh失敗など)となります。