スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(UNIX(R)用)

[目次][索引][前へ][次へ]

pdpfreshサーバプロセスのリフレッシュ

機能

サーバプロセスをリフレッシュします。リフレッシュとは,稼働中のプロセスを終了させ,代わりに新しいプロセスを起動することをいいます。

リフレッシュ対象となるのは,シングルサーバ,バックエンドサーバ,及びディクショナリサーバです。

更新可能なオンライン再編成を使用する場合,pdpfreshコマンドを実行することで,RDエリアのオープン属性がINITIAL又はDEFERのときでも,ユーザのサーバプロセスが該当サーバのRDエリアにアクセスしていない状態(RDエリアの切り離しができる状態)を作り出すことができます。

実行者

HiRDB管理者が実行できます。

形式

 
 pdpfresh 〔-s サーバ名〕 〔{-f|-c}〕
 

オプション

リフレッシュをするサーバの名称を指定します。

指定できるサーバは,HiRDB/シングルサーバの場合はシングルサーバ,HiRDB/パラレルサーバの場合はバックエンドサーバ又はディクショナリサーバ(フロントエンドサーバは指定できません)です。

省略した場合,すべてのサーバ(フロントエンドサーバを除く)を対象とします。

強制的にリフレッシュする場合に指定します。

-fオプションの指定有無によるプロセス終了契機,及びエラー発生有無の違いを次の表に示します。

表2-19 -fオプションの指定有無によるプロセス終了契機,及びエラー発生有無の違い(pdpfreshコマンド)

プロセス -fオプションの指定
なし あり
ユティリティの内部処理中のシングルサーバ,バックエンドサーバ,及びディクショナリサーバのプロセス ユティリティ実行中にpdpfreshコマンドを実行した場合,サーバプロセスのリフレッシュはされないで,エラー終了(リターンコード=6)します。この場合,ユティリティの動作に影響はありません。 トランザクション終了時点で強制終了します。この場合,ユティリティが異常終了することがあります。
次のサーバプロセス
  • UNTIL DISCONNECTの排他が掛かっているシングルサーバ
  • ホールダブルカーソルを使用しているシングルサーバ,又はバックエンドサーバ
  • AP単位のローカルバッファを使用しているバックエンドサーバ
サーバプロセスは強制終了しません。これらのプロセスは,左記の条件を満たさなくなった場合,又は次回のDISCONNECT時に終了します。シングルサーバの場合は,HiRDBクライアントとHiRDBサーバとの間で接続エラーになることがあります。バックエンドサーバの場合はエラーは発生しません。
左記のプロセスがあるかぎり,サーバプロセスのリフレッシュは完了しないため,注意してください。
トランザクション終了時点で強制終了します。以降,これらのプロセスに対して実行したSQLは接続エラーとなります。
バックエンドサーバ接続保持機能を使用しているバックエンドサーバのプロセス トランザクション実行中の場合,トランザクション終了後にプロセスがリフレッシュされます。トランザクション中でない場合は,次回のトランザクション終了後にプロセスがリフレッシュされます。 トランザクション終了時点で強制終了します。この後,これらのプロセスに対して発行されたSQLは接続エラーとなります。

pdpfreshコマンドでプロセス終了要求を受けたプロセスが,すべて終了しているかどうかを調べる場合に指定します。シェルを使用してプロセスのリフレッシュ状態を監視したい場合に指定してください。

結果は,pdpfreshコマンドのリターンコードで分かります(KFPS00730-Iメッセージにも表示されます)。

プロセスごとのリフレッシュ状態を調べたい場合は,pdls -d prc -cコマンドを実行してください。

規則

  1. pdpfreshコマンドは,HiRDBが稼働中のときだけ実行できます。
  2. pdpfreshコマンドは,シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。
  3. pdpfreshコマンドは,サーバプロセスのリフレッシュの完了を待たないで終了します。そのため,リフレッシュ中にエラーが発生した場合,pdpfreshコマンドがリターンコード0で終了した後に,エラーメッセージが出力されることがあります。
  4. pdpfreshコマンド実行後,プロセスのリフレッシュ完了前に再度pdpfreshコマンドを実行した場合,再実行時の稼働中プロセスがリフレッシュ対象となります。
  5. HiRDB/パラレルサーバでフロントエンドサーバの名称を指定した場合,リフレッシュをしないで処理を正常終了します。
  6. トランザクション実行中のサーバプロセスは,すぐには終了しないで,トランザクションが完了した時点で終了します。
  7. HiRDB/シングルサーバの場合,リフレッシュ実行中にHiRDBクライアントとHiRDBサーバとの間で接続エラーが発生することがあります。これを回避したい場合は,UAPに,接続エラー発生時に接続処理を再実行する処理を追加してください。また,自動再接続機能を使用すると,このエラーがUAPに返却されないで,自動的に再接続がされます。自動再接続機能については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。

注意事項

  1. pdpfreshコマンドの実行結果は,pdls -d prcコマンド,及びコマンド実行時のリターンコードで確認できます。コマンド実行時のリターンコードを次に示します。
    リターンコード 実行結果 備考
    0 -cオプションあり リフレッシュするプロセスはありません。
    -cオプションなし リフレッシュ処理を開始しました。
    1 -cオプションあり リフレッシュ中のプロセスがあります。 -cオプション指定時にだけ出力されます。
    -cオプションなし
    4 警告終了しました(一つ以上のサーバでエラーが発生)。 HiRDB/パラレルサーバの場合にだけ出力されます。
    6 ユティリティ実行中のため,リフレッシュ処理をしないで終了しました。 -fオプションを指定していない場合にだけ出力されます。
    8 異常終了
    (凡例)−:該当しません。
    注※
    何らかの要因で一つ以上のサーバから応答がなかった場合,ほかのサーバに対して処理を続行し,リターンコード4で終了します。この場合,エラーが発生したサーバの状態を確認してください。
    エラーが発生したサーバが稼働中の場合,そのサーバプロセスがRDエリアにアクセス中のままとなっている(ペアボリュームの再同期化を妨げる)可能性があります。エラーが発生したサーバが稼働中の場合は,-sオプションにそのサーバ名を指定して,再度pdpfreshコマンドを実行してください。
  2. pdpfreshコマンドは,サーバプロセスのリフレッシュ完了を待たないで終了します。
  3. -cオプション指定なしのpdpfreshコマンドがリターンコード0となった後,-cオプション指定ありのpdpfreshコマンドがリターンコード0になれば,リフレッシュ完了です。
  4. -cオプション指定ありのpdpfreshコマンドのリターンコード0は,コマンド実行時点でリフレッシュ中のプロセスがないことを意味します(リフレッシュ処理が実行され,それが完了したことを意味するものではありません)。したがって,-cオプション指定なしのpdpfreshコマンドを実行しないで-cオプションありのpdpfreshコマンドを実行すると,リターンコード0となりますが,リフレッシュ処理はされていないので注意してください。
  5. pdpfreshコマンドでサーバプロセスをリフレッシュした場合,KFPS01820-E,KFPS04620-I,及びKFPS01819-Iメッセージは出力されません。
  6. リフレッシュ中は,常駐プロセス数を一時的に0にします。したがって,リフレッシュ中のサーバに対して,pdchprcコマンドは実行しないでください。実行した場合,リフレッシュが完了しないことがあります。この場合,再度pdpfreshコマンドを実行して,リフレッシュが完了したら,pdchprcコマンドを実行してください。
  7. リフレッシュ対象のサーバプロセスの数が多い場合,すべてのプロセスのリフレッシュが完了するまでに時間が掛かることがあります。