Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


12.9.2 pdsdblodコマンドが無応答状態になった場合

pdsdblodコマンドが無応答状態になった場合,pdcancelコマンドでpdsdblodコマンドをキャンセルしてください。手順を次に示します。

手順1
  1. pdls -d prcコマンドを実行します。コマンドの実行結果は,リダイレクションでファイルに出力してください。

     pdls -d prc>出力先ファイル名
  2. 1.の実行結果を参照して,バックエンドサーバのプロセスIDを確認します。

     HOSTNAME : host01(135225)
     STATUS PID   UID    GID    SVID   TIME  PROGRAM   C-PID  C-GRP
        :   2924   :      :      :      :    pdsdblod    :      :

    PROGRAM欄にpdsdblodと表示されている行を検索してください。この行のPID欄に表示されているプロセスID(この例では2924)が,pdsdblodコマンド実行中のバックエンドサーバのプロセスIDです。

    pdsdblodが表示されていない場合は,手順2の方法でプロセスIDを確認してください。

  3. pdcancelコマンドで,pdsdblodコマンド実行中のバックエンドサーバをキャンセルします。

     pdcancel -X ユニット識別子 -i プロセスID -d

    ユニット識別子には,pdsdblodコマンドの処理対象RDエリアがあるユニットのユニット識別子を指定してください。

    プロセスIDには,2.で確認したプロセスID(この例では2924)を指定してください。

手順2
  1. pdls -d rpcコマンドを実行します。コマンドの実行結果は,リダイレクションでファイルに出力してください。

     pdls -d rpc -a>出力先ファイル名
  2. 1.の実行結果を参照して,ユティリティサーバ(pdsdblodm)のプロセスIDを確認します。

     Server Information :
       PID     SVID     STATUS …   CLTPID
       5444    0msdldN    :           :

    SVID欄に0msdldN(末尾のNは16進の数字)と表示されている行を検索してください。この行のPID欄に表示されているプロセスID(この例では5444)が,ユティリティサーバ(pdsdblodm)のプロセスIDです。

    なお,0msdldNが複数表示されている場合は,CLTPID欄(サーバのプロセスと接続しているクライアントのプロセスID)を確認してください。無応答状態になったpdsdblodコマンドのプロセスIDがCLTPID欄に表示されている行が該当する行になります。pdsdblodコマンドのプロセスIDは,OSのpsコマンドで確認できます。

  3. pdcancelコマンドで,ユティリティサーバ(pdsdblodm)をキャンセルします。

     pdcancel -X ユニット識別子 -i プロセスID -d

    ユニット識別子には,pdsdblodコマンドの処理対象RDエリアがあるユニットのユニット識別子を指定してください。

    プロセスIDには,2.で確認したプロセスID(この例では5444)を指定してください。

なお,無応答状態の原因調査のために,pdsdblodコマンドのキャンセル後,pdinfogetコマンドで障害情報を取得してください。

注意事項
  • ログレスモードのpdsdblodコマンドをキャンセルした場合,処理対象RDエリアが障害閉塞します。そのため,pdsdblodコマンドを再実行する場合は,障害閉塞を解除する必要があります。障害閉塞を解除する方法については,「5.22 障害が発生したときの対処方法(pdsdblodコマンドの異常終了時)」を参照してください。

  • pdsdblodコマンドをキャンセルする際,OSのkillコマンドを使用しないでください。killコマンドでpdsdblodコマンドをキャンセルすると,ユニットが異常終了するおそれがあります。

  • 大量のレコードをデータロードまたはフォーマットライトしているときに,pdsdblodコマンドをキャンセルすると,トランザクションのロールバック処理に時間が掛かります。このロールバック処理が完了するまでpdsdblodコマンドを再実行できません(コマンドの実行はできますが,排他待ち状態になります)。ロールバック処理が完了したかどうかは,pdls -d trn -aコマンドで確認できます。また,ロールバック処理が完了したときに,KFPB63451-Eメッセージが出力されます。