Hitachi

ノンストップデータベース HiRDB Version 9 コマンドリファレンス(Windows(R)用)


11.5 注意事項

  1. pdreclaimは内部的にpdrorgを実行するため,同時実行可能数はpdrorgの上限と同じになります。つまり,pdreclaimの同時実行可能数は,「pdrorgの同時実行可能数−実行中のpdrorg数」となります。

  2. ビュー表,及び一時表は処理対象外です。-tオプションにビュー表又は一時表を指定して実行すると,pdreclaimはKFPL15231-Eメッセージを出力して,エラー終了します。また,-tオプションにallを指定した場合,pdreclaimは該当する表の処理をスキップします。

  3. LOB用RDエリアは処理対象外です。したがって,抽象データ型,及びプラグインインデクスを格納しているLOB用RDエリアも処理対象外となります。

  4. インデクスの使用中空きページ解放をする場合,解放中のページをUAPがアクセスしているときは,該当するUAPのトランザクションが決着するまでpdreclaimが待ち状態になります。このpdreclaimの待ち時間は,-wオプションで指定できます。

  5. 実行中のpdreclaimを強制終了させる場合は,pdcancelコマンドで強制終了させてください。pdkillコマンドなどで強制終了しても,pdreclaimは終了しません。

  6. -jオプションを指定したpdreclaimを実行する場合,UAPが不当に排他待ちとならないように,pdholdコマンドでRDエリアを閉塞しておくことをお勧めします。

    pdreclaimに-jオプションを指定すると,表及びインデクスを格納しているRDエリアに対してEXモードの排他を掛けるため,表及びインデクスを格納しているRDエリア全体がアクセスできなくなります。この排他制御は,-wオプション,及び-nオプションの指定によって,次の表に示すように動作します。

    表11‒9 空きセグメント解放時の排他制御の動作

    オプションの指定値

    1回の排他待ち時間

    排他エラー発生時

    -w

    -n

    排他待ちタイムアウトエラー

    タイムアウト以外のエラー

    排他のリトライ

    リトライ回数

    対処

    対処

    指定なし

    無限

    指定あり

    指定なし

    -wオプションに指定した時間

    なし

    0

    エラーメッセージを出力して処理を打ち切ります。

    エラーメッセージを出力して処理を打ち切ります。

    指定あり

    あり

    -nオプションに指定した回数

    -nオプションに指定した回数まで排他リトライをします。

    -nオプションに指定した回数で,タイムアウトした場合は,メッセージを出力して処理を打ち切ります。

    (凡例)

    −:該当しません。

    空きセグメント解放で排他する資源を次の表に示します。

    表11‒10 空きセグメント解放で排他する資源

    資源名称

    資源番号

    モード

    排他の目的

    排他リトライの有無

    pdreclaim

    5006

    EX

    同一資源へのpdreclaim同時実行抑止

    pdreclaim実行中の場合は,処理を打ち切るため,排他リトライはありません。

    RDエリア名

    0001

    EX

    空きセグメント解放中のRDエリアへのアクセス抑止

    -nオプションを指定しているときに,排他待ちタイムアウトエラーが発生すると,排他リトライをします。

    表名

    0002

    SR

    pdreclaim実行中の場合は,処理を打ち切るため,排他リトライはありません。

    インデクス名

    0003

    SU

    表名(NOWAIT検索時)

    000B

    SR

    RRAMB

    0102

    SR

    RDエリアへのEXモードの排他が成功した後に確保する資源のため,タイムアウトエラーは発生しません。このため,排他リトライはありません。

  7. pdreclaimのリターンコードを次の表に示します。

    表11‒11 pdreclaimのリターンコード

    リターンコード

    意味

    対処方法

    0

    使用中空きページ,使用中空きセグメントの解放が完了しました。

    なし。

    4

    UAPのトランザクション決着待ち時間,又はホールダブルカーソルを使用した検索の実行待ち時間のタイムオーバーが発生したため,処理を中断しました。

    タイムオーバーで使用中空きページ解放,又は使用中空きセグメント解放を中断した状態のため,表,及びインデクスの状態は保証されます。したがって,このままでも表,及びインデクスはUAPからアクセスできます。

    未解放の使用中空きページを解放するには,pdreclaimを再度実行してください。

    インデクスの空きページ解放を行った場合,及び-aオプション指定のpdreclaimを実行した場合は,pddbstで解放途中のセグメント及びページがないことを確認してください。インデクスの空きページ解放の場合,解放途中のページがあるときは,pdreclaimを再実行するか,又はpdrorgでインデクスの再編成を実行してください。-aオプション指定のpdreclaimの場合,解放途中セグメントがあるときは,pdreclaimを再実行するか,又はpdrorgで表の再編成を実行してください。

    8

    異常終了しました。

    エラーによって使用中空きページ解放を中断した状態のため,表,及びインデクスの状態は保証されます。したがって,異常終了後でも表,及びインデクスはUAPからアクセスできます。

    pdreclaimを再度実行する場合は,出力されたエラーメッセージを参照してエラー原因を取り除いてください。

    -aオプションを指定している場合は,解放途中セグメントが残ることがあるため,pdreclaimを再度実行してください。

    インデクスの空きページ解放を行った場合,及び-aオプション指定のpdreclaimを実行した場合は,pddbstで解放途中のセグメント及びページがないことを確認してください。インデクスの空きページ解放の場合,解放途中のページがあるときは,pdreclaimを再実行するか,又はpdrorgでインデクスの再編成を実行してください。-aオプション指定のpdreclaimの場合,解放途中セグメントがあるときは,pdreclaimを再実行するか,又はpdrorgで表の再編成を実行してください。

  8. 処理対象の表に,ユーザが定義した抽象データ型列がある場合,pdreclaimは実行できません。

  9. 共用表,又は共用インデクスに対してpdreclaimを実行する場合,共用表,又は共用インデクスを格納しているRDエリアに対してEXモードで排他を掛けます。そのため,該当するRDエリアに定義したほかの表やインデクスも参照,及び更新ができません。共用表に対してpdreclaimを実行する場合の排他制御モードについては,「ユティリティの排他制御モード」を参照してください。

  10. HiRDB/パラレルサーバの場合,通信回線の混雑によってバックエンドサーバからpdreclaimに対する送信電文が1秒以上遅れたときは,該当するバックエンドサーバの処理結果が標準出力に表示されないことがあります。この場合,メッセージログファイル又はイベントログに出力されるKFPL00714-Iメッセージで処理結果を確認してください。

  11. pdreclaimを実行している表やインデクスに対して,定義系SQLは実行しないでください。実行すると,pdreclaimが異常終了します。スキーマ単位にpdreclaimを実行している場合は,該当スキーマが持つすべての表とインデクスが対象となります。

  12. pdntenvコマンドで文字コードとしてutf-8,又はutf-8_ivsを選択した場合,pdreclaimの制御情報ファイルには,BOMを持つファイルを使用できますが,BOMは読み飛ばされます。