11.5 注意事項
-
pdreclaimは内部的にpdrorgを実行するため,同時実行可能数はpdrorgの上限と同じになります。つまり,pdreclaimの同時実行可能数は,「pdrorgの同時実行可能数−実行中のpdrorg数」となります。
-
ビュー表,及び一時表は処理対象外です。-tオプションにビュー表又は一時表を指定して実行すると,pdreclaimはKFPL15231-Eメッセージを出力して,エラー終了します。また,-tオプションにallを指定した場合,pdreclaimは該当する表の処理をスキップします。
-
LOB用RDエリアは処理対象外です。したがって,抽象データ型,及びプラグインインデクスを格納しているLOB用RDエリアも処理対象外となります。
-
インデクスの使用中空きページ解放をする場合,解放中のページをUAPがアクセスしているときは,該当するUAPのトランザクションが決着するまでpdreclaimが待ち状態になります。このpdreclaimの待ち時間は,-wオプションで指定できます。
-
実行中のpdreclaimを強制終了させる場合は,pdcancelコマンドで強制終了させてください。OSのkillコマンドなどで強制終了しても,pdreclaimは終了しません。
-
-jオプションを指定したpdreclaimを実行する場合,UAPが不当に排他待ちとならないように,pdholdコマンドでRDエリアを閉塞しておくことをお勧めします。
pdreclaimに-jオプションを指定すると,表及びインデクスを格納しているRDエリアに対してEXモードの排他を掛けるため,表及びインデクスを格納しているRDエリア全体がアクセスできなくなります。この排他制御は,-wオプション,及び-nオプションの指定によって,次の表に示すように動作します。
表11‒10 空きセグメント解放時の排他制御の動作 オプションの指定値
1回の排他待ち時間
排他エラー発生時
-w
-n
排他待ちタイムアウトエラー
タイムアウト以外のエラー
排他のリトライ
リトライ回数
対処
対処
指定なし
−
無限
−
−
−
−
指定あり
指定なし
-wオプションに指定した時間
なし
0
エラーメッセージを出力して処理を打ち切ります。
エラーメッセージを出力して処理を打ち切ります。
指定あり
あり
-nオプションに指定した回数
-nオプションに指定した回数まで排他リトライをします。
-nオプションに指定した回数で,タイムアウトした場合は,メッセージを出力して処理を打ち切ります。
- (凡例)
-
−:該当しません。
空きセグメント解放で排他する資源を次の表に示します。
表11‒11 空きセグメント解放で排他する資源 資源名称
資源番号
モード
排他の目的
排他リトライの有無
pdreclaim
5006
EX
同一資源へのpdreclaim同時実行抑止
pdreclaim実行中の場合は,処理を打ち切るため,排他リトライはありません。
RDエリア名
0001
EX
空きセグメント解放中のRDエリアへのアクセス抑止
-nオプションを指定しているときに,排他待ちタイムアウトエラーが発生すると,排他リトライをします。
表名
0002
SR
pdreclaim実行中の場合は,処理を打ち切るため,排他リトライはありません。
インデクス名
0003
SU
表名(NOWAIT検索時)
000B
SR
RRAMB
0102
SR
RDエリアへのEXモードの排他が成功した後に確保する資源のため,タイムアウトエラーは発生しません。このため,排他リトライはありません。
-
pdreclaimのリターンコードを次の表に示します。
表11‒12 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で表の再編成を実行してください。
-
処理対象の表に,ユーザが定義した抽象データ型列がある場合,pdreclaimは実行できません。
-
共用表,又は共用インデクスに対してpdreclaimを実行する場合,共用表,又は共用インデクスを格納しているRDエリアに対してEXモードで排他を掛けます。そのため,該当するRDエリアに定義したほかの表やインデクスも参照,及び更新ができません。共用表に対してpdreclaimを実行する場合の排他制御モードについては,「ユティリティの排他制御モード」を参照してください。
-
HiRDB/パラレルサーバの場合,通信回線の混雑によってバックエンドサーバからpdreclaimに対する送信電文が1秒以上遅れたときは,該当するバックエンドサーバの処理結果が標準出力に表示されないことがあります。この場合,メッセージログファイル又はsyslogfileに出力されるKFPL00714-Iメッセージで処理結果を確認してください。
-
pdreclaimを実行している表やインデクスに対して,定義系SQLは実行しないでください。実行すると,pdreclaimが異常終了します。スキーマ単位にpdreclaimを実行している場合は,該当スキーマが持つすべての表とインデクスが対象となります。
-
pdsetupコマンドで文字コードとしてutf-8,又はutf-8_ivsを選択した場合,pdreclaimの制御情報ファイルには,BOMを持つファイルを使用できますが,BOMは読み飛ばされます。