20.13.1 対処手順
UAP又はユティリティが終了しないと(接続中のユーザが存在すると)HiRDBを終了できません。HiRDBの終了時に接続中のユーザが存在する場合は,KFPS05120-Wメッセージを出力し,接続ユーザ情報ファイル及び接続ユーザ詳細ファイルを出力します。このとき,HiRDB管理者は次に示す手順に従って接続中のユーザを切断し,HiRDBを終了してください。
- 〈手順〉
- 注
-
処理ボックスの左にある数字はこの後で説明している( )レベルに対応しています。例えば,5の操作は(5)で説明しています。
- 〈この項の構成〉
-
(1) 接続中のユーザを調べます
(a) pdls -d prcコマンドで接続中のユーザを調べる場合
pdls -d prc HOSTNAME : k95x620(173420) STATUS PID UID GID SVID TIME PROGRAM C-PID C-GRP L 22118 334 300 fes1 173330 uap00 22205 PC
- 〔説明〕
-
PROGRAMに表示されているUAP識別子を確認します。接続中のUAPはuap00です。
(b) 接続ユーザ情報ファイルで接続中のユーザを調べる場合
接続先ユーザ情報ファイルの出力内容については,「接続ユーザ情報ファイルと接続ユーザ詳細ファイル」を参照してください。
UNIT ID : UNT1(173420) UID PID GID SVID TIME PROGRAM C-GRP C-PID C-IP 334 22118 300 fes1 173330 uap00 PC 22205 172.17.32.37
- 〔説明〕
-
PROGRAMに表示されているUAP識別子を確認します。接続中のUAPはuap00です。
(2) 実行中のトランザクションが存在するか調べます
pdls -d trnコマンドを実行するか,又は接続ユーザ詳細ファイル中のpdls -d trnコマンドの実行結果から実行中のトランザクションが存在するかを調べます。
接続ユーザ詳細ファイルの出力内容については,「接続ユーザ情報ファイルと接続ユーザ詳細ファイル」を参照してください。
(3) READY(p,?)又はFORGETTING(?,w)状態のトランザクションが存在しますか?
pdls -d trnコマンドの実行結果,又は接続ユーザ詳細ファイルの情報からREADY(p,?)又はFORGETTING(?,w)状態のトランザクションが存在するかを調べてください。
(4) 未決着状態のトランザクションを決着させます
「未決着状態のトランザクションがあるときの対処方法」を参照して未決着状態のトランザクションを決着してください。
(5) 実行中のトランザクションが存在しますか?
pdls -d trnコマンドの実行結果,又は接続ユーザ詳細ファイルの情報からREADY(p,?)又はFORGETTING(?,w)状態以外のトランザクションが存在するかを調べてください。
(6) トランザクションを強制終了しますか?
READY(p,?)又はFORGETTING(?,w)状態以外のトランザクションが存在した場合,そのトランザクションを強制終了するか,トランザクションが決着するのを待つかを決定します。実行中のトランザクションの処理時間が短い場合はトランザクションの終了を待ってください。処理時間が長い場合はトランザクションを強制終了してください。
(7) 接続中のユーザ(UAP)をpdcancelコマンドで強制終了します
pdcancelコマンドでトランザクションを強制終了します。
HiRDB/シングルサーバの場合
pdcancel -u UAP00 -i 22118
HiRDB/パラレルサーバの場合(実行例1)
pdcancel -x k95x620 -u UAP00 -i 22118
HiRDB/パラレルサーバの場合(実行例2)
pdcancel -X UNT1 -u UAP00 -i 22118
- 〔説明〕
-
-u:UAP識別子を指定します。
-x:UAPが接続しているフロントエンドサーバがあるホスト名を指定します。指定するホスト名はpdls -d prcコマンドの実行結果のHOSTNAMEに表示されます。
-X:ユニット識別子を指定します。指定するユニット識別子は接続ユーザ情報ファイルのUNIT IDに表示されます。
-i:プロセスIDを指定します。
(8) 1分程度待ちます
pdcancelコマンドの実行後,トランザクションが自動的に決着するのを待ちます。
(9) トランザクションが終了するのを待ちます
トランザクションを強制終了しない場合は,トランザクションが終了するのを待ちます。
(10) 接続中のユーザ(UAP)をpdcancelコマンドで切断します
接続中のユーザにトランザクションが存在しない場合は,接続中のユーザをpdcancelコマンドで切断してください。
HiRDB/シングルサーバの場合
pdcancel -i 22118 -d
HiRDB/パラレルサーバの場合(実行例1)
pdcancel -x k95x620 -i 22118 -d
HiRDB/パラレルサーバの場合(実行例2)
pdcancel -X UNT1 -i 22118 -d
- 〔説明〕
-
-i:プロセスIDを指定します。
-d:HiRDB側のサーバプロセスを強制終了する場合に指定します。-dオプションを指定するとcoreファイルが出力されます。coreファイルが不要な場合はpdcspoolコマンドで削除してください。
-x:UAPが接続しているフロントエンドサーバがあるホスト名を指定します。指定するホスト名はpdls -d prcコマンドの実行結果のHOSTNAMEに表示されます。
-X:ユニット識別子を指定します。指定するユニット識別子は接続ユーザ情報ファイルのUNIT IDに表示されます。
(11) 1分程度待ちます
pdcancelコマンドの実行後はユーザの接続が切断されて,HiRDBの終了処理が再開されるのを待ちます。
(12) pdstopコマンドがタイムアウトしていますか?
KFPS05047-Eメッセージが出力されていると,pdstopコマンドがタイムアウトしています。
(13) pdstopコマンドを実行します
pdstopコマンドがタイムアウトした場合は,再度pdstopコマンドを実行してください。
(14) KFPS01840-Iメッセージが出力されましたか?
KFPS01840-Iメッセージが出力されている場合,HiRDBの終了処理が開始されています。