物理ファイル・メンバー再編成 (RGZPFM)
実行可能場所: すべての環境 (*ALL) スレッド・セーフ: 条件付き |
パラメーター 例 エラー・メッセージ |
物理ファイル・メンバー再編成(RGZPFM)コマンドは,データベース内の物理ファイルの1メンバーから削除済みレコードを除去(メンバーを圧縮)し,必要ならばそのメンバーを再編成します。
キー・ファイル(KEYFILE)パラメーターにキー順ファイルが示されている場合には,システムは,記憶域中のレコードの物理順序を物理ファイル・メンバーのアクセス・パスのキー順に合うように変更するか,あるいは物理ファイルの上に定義されている論理ファイル・メンバーのアクセス・パスに合うように変更することによって,メンバーを再編成します。再編成によって,プログラムがキー順物理ファイルまたはキー順論理ファイルを順序に読み取る時のファイル処理時間を短縮することができます。
メンバーが再編成されて,KEYFILE(*NONE)が指定されていないと,レコードが実際に記憶される順序が変更され,削除されたレコードはすべてファイルから除去されます。KEYFILE(*NONE)が指定された場合,あるいは省略時の値として使用される場合には,レコードの順序は変更されませんが,削除されたレコードはメンバーから除去されます。任意選択として,新しい順序番号とゼロの日付フィールドがレコードのソース・フィールドに入れられます。これらのフィールドは,メンバーが圧縮または再編成された後で変更されます。
注:
- このコマンドを取り消すと,システムは,再編成時に保守されないすべてのアクセス・パスを再ビルドします。ALWCANCEL(*NO)を指定した場合には,固有のアクセス・パスをもつ物理ファイル・メンバーに対する更新は,アクセス・パスが完全に再作成されるまでは防止されます。
- このコマンドを取り消した時に,ALWCANCEL(*YES)が指定されていた場合には,再編成が部分的に完了します。以後,同じパラメーターで別の再編成を行う場合には,最後の再編成が終了した個所から続行できます。
- RGZPFMコマンドは,ジョブに対して現在有効となっているすべてのファイル一時変更を無視します。FILEおよびKEYFILEパラメーターに指定されているファイル名は,存在している可能性のあるこれらのファイルの一時変更に関係なく,再編成操作で実際に使用されるファイルを識別します。
制約事項:
- 物理メンバーの再編成時には,再編成中のファイルはロックされています。物理ファイル・メンバーに対して可能な並行アクセスの量を示すには,ロック状態(LOCK)パラメーターを指定できます。
- ユーザーは,再編成されるメンバーが含まれている物理ファイルに対するオブジェクト操作権,オブジェクト管理または変更権,すべてのデータ権限,およびそのライブラリーに対する実行権限をもっていなければなりません。また,KEYFILEパラメーターで指定されたファイルに対するオブジェクト操作権限およびそのライブラリーに対する実行権限も必要です。
- マルチスレッド・ジョブではこのコマンドは分散ファイルに対してスレッド・セーフではなく,タイプ*SNAのリレーショナル・データベースを使用する分散ファイルに対して正常に実行されません。また,このコマンドは*SNAタイプの分散データ管理機能(DDM)ファイルに対してもスレッド・セーフではなく,正常に実行されません。
上 |
パラメーター
キーワード | 記述 | 選択項目 | ノーツ |
---|---|---|---|
FILE | データベース・ファイル | 修飾オブジェクト名 | 必須, 定位置 1 |
修飾子 1: データベース・ファイル | 名前 | ||
修飾子 2: ライブラリー | 名前, *LIBL, *CURLIB | ||
MBR | メンバー | 名前, *FIRST, *LAST | オプショナル, 定位置 2 |
KEYFILE | キー・ファイル | 単一値: *NONE, *FILE, *RPLDLTRCD その他の値: 要素リスト |
オプショナル |
要素 1: 論理ファイル | 修飾オブジェクト名 | ||
修飾子 1: 論理ファイル | 名前 | ||
修飾子 2: ライブラリー | 名前, *LIBL, *CURLIB | ||
要素 2: メンバー | 名前 | ||
RBDACCPTH | アクセス・パスの再作成 | *YES, *OPTIMIZE, *NO | オプショナル |
ALWCANCEL | 取り消しの許可 | *NO, *YES | オプショナル |
LOCK | ロック状態 | *EXCL, *EXCLRD, *SHRUPD | オプショナル |
FROMRCD | 開始レコード | 符号なし整数, *START, *PRVRGZ | オプショナル |
SRCOPT | ソース更新オプション | 単一値: *SAME その他の値 (最大 2 回の繰り返し): *SEQNBR, *DATE |
オプショナル |
SRCSEQ | ソース・ステートメントの順序番号付け | 要素リスト | オプショナル |
要素 1: 開始順序番号 | 0.01-9999.99, 1.00 | ||
要素 2: 増分番号 | 0.01-9999.99, 1.00 | ||
RCDFMT | レコード様式 | 名前, *ONLY | オプショナル |
上 |
データベース・ファイル (FILE)
再編成されるメンバーが入っている物理ファイルを指定します。
これは必須パラメーターです。
修飾子1: データベース・ファイル
- 名前
- 物理ファイルの名前を指定してください。
修飾子2: ライブラリー
- *LIBL
- 最初に一致するものが見つかるまで,現行スレッドのライブラリー・リスト内のすべてのライブラリーが検索されます。
- *CURLIB
- ファイルを見つけるためにスレッドの現行ライブラリーが使用されます。ジョブの現行ライブラリーとして指定されているライブラリーがない場合,QGPLライブラリーが使用されます。
- 名前
- 検索するライブラリーの名前を指定してください。
上 |
メンバー (MBR)
再編成されるメンバーを指定します。
- *FIRST
- ファイル内の最初のメンバーまたは唯一のメンバーが再編成されます。
- *LAST
- ファイル内の最後のメンバーまたは唯一のメンバーが再編成されます。
- 名前
- 再編成するファイル・メンバーの名前を指定してください。
上 |
キー・ファイル (KEYFILE)
物理ファイル・メンバーの到着順序をキー順に一致するように変更するか,物理ファイル・メンバーを論理ファイル・メンバーの順序に再編成するか,あるいは再編成しないか,そのいずれかを指定します。このパラメーターに複数様式の論理ファイルおよびメンバーを指定した場合には,レコード様式(RCDFMT)パラメーターも指定しなければなりません。
注: 結合論理ファイル,あるいはWHERE節を使用したSQL索引をキー・ファイルとして指定することはできません。また,このパラメーターの論理ファイルに選択/除外アクセス・パスを指定することはできません。
単一値
- *NONE
- メンバーは再編成されません。削除済みレコードを取り除くことにより圧縮されるだけです。
- *RPLDLTRCD
- メンバーは,ファイルの先頭にある削除済みレコードをファイルの終わりにある有効なレコードで置き換えることによって再編成されます。レコードが正確に到着順と一致しなければならない場合には,*RPLDLTRCDを使用しないでください。
- *FILE
- キー順アクセス・パスをもつ物理ファイル・メンバーの場合には,メンバー内のレコードの到着順序がキー順に一致するように変更されます。
要素1: 論理ファイル
物理ファイル・メンバーと関連した論理ファイルの名前およびライブラリーを指定してください。
修飾子1: 論理ファイル
- ファイル名
- キー・ファイルとして使用する論理ファイルの名前を指定してください。
修飾子2: ライブラリー
- *LIBL
- 最初に一致するものが見つかるまで,ジョブのライブラリー・リスト内のすべてのライブラリーが検索されます。
- *CURLIB
- ファイルを見つけるために,ジョブの現行ライブラリーが使用されます。ジョブの現行ライブラリーとして指定されているライブラリーがない場合は,QGPLが使用されます。
- ライブラリー名
- 検索するライブラリーの名前を指定してください。
要素2: メンバー
- 名前
- 物理ファイル・メンバーの再編成に使用する順序をもつ論理ファイルのメンバーを指定してください。
上 |
アクセス・パスの再作成 (RBDACCPTH)
メンバーに関する有効なアクセス・パス(KEYFILEとして指定されたアクセス・パスまたはMAINT(*REBLD)アクセス・パス以外)を再ビルドまたは保守するかどうかを指定します。
- *YES
- アクセス・パスは,再編成操作の終わりに同期的に再作成されます。
- *OPTIMIZE
- アクセス・パスが再編成操作の終わりで非同期的に再作成されるか,再編成時に保守されるかのいずれかですが,それは最も早くアクセス・パスを作成することになるメソッドに基づいています。
- *NO
- アクセス・パスは再編成時に保守されます。
*NOを指定した場合には,ALWCANCEL(*YES)も指定しなければなりません。
上 |
取り消しの許可 (ALWCANCEL)
再編成を取り消せるようにするかどうかを指定します。
- *NO
- 再編成は取り消すことができません。ジョブが終了し,データの再編成が完了しない場合には,障害が起こった時点までの変更は廃棄されます。
*NOを指定した場合には,KEYFILE(*RPLDLTRCD)およびRDBACCPTH(*NO)は指定してはならず,LOCK(*EXCL)も指定しなければなりません。
- *YES
- 再編成は取り消すことができます。再編成が完了前に取り消された場合には,同じパラメーターでの後続の再編成は,一般的に終了した個所から続行されます。再編成が取り消されてから行われた変更の数が多すぎる場合には,再編成は続行するのではなく,再開できます。
上 |
ロック状態 (LOCK)
物理ファイル・メンバーに対して獲得するロックを指定します。ロック状態は,再編成中に他のジョブで可能な並行アクセスの量を決定します。
- *EXCL
- 排他ロックが獲得されます。別のジョブからの物理ファイル・メンバーへの並行アクセスは許されません。
- *EXCLRD
- 排他的読み取り可能ロックが獲得されます。別のジョブからの物理ファイル・メンバーへの並行読み取りアクセスは許可されます。
*EXCLRDを指定した場合には,ALWCANCEL(*YES)も指定しなければなりません。
- *SHRUPD
- 共用更新ロックが獲得されます。別のジョブからの物理ファイル・メンバーへの並行更新,削除,および挿入アクセスは許可されます。
*SHRUPDを選択した場合,結果として得られるレコード順序はKEYFILEキーワードで要求されたものと正確に一致しない場合があります。レコードは指定された順序に近い順序で再編成されますが,更新,削除,および挿入の操作を並行して行うと,一部のレコードが再編成されない場合があります。レコードが正確に到着順(*NONE)またはキー付きファイルの順序と一致しなければならない場合には,*SHRUPDを使用しないでください。
再編成の終了時に,ファイルの終わりにある削除済みレコードを除去して記憶域をシステムに戻す試みが行われます。*SHRUPDが指定された場合,削除済みレコードを除去する直前に行われる並行挿入により,ファイルの終わりにある削除済みレコードの一部またはすべての除去が妨げられる可能性があります。この場合は,この後の再編成でFROMRCDキーワードを使用することにより,ファイル全体の再編成を再度行わずに削除済みレコードの除去を試行することができます。
*SHRUPDを指定した場合には,ALWCANCEL(*YES)も指定しなければなりません。
注: ロック状態の詳細については,IBM i Information Center(http://www.ibm.com/systems/i/infocenter/)の「プログラミング」カテゴリーの「制御言語(CL)」トピック・コレクションを参照してください。
上 |
開始レコード (FROMRCD)
ファイル内のどのレコードを再編成するかを指定します。指定したレコードからファイルの終わりまでのレコードのみが再編成されます。
- *START
- ファイル内のすべてのレコードが再編成されます。
- *PRVRGZ
- このファイルの直前の再編成で一部またはすべての削除済みレコードを除去できなかった場合は,並行挿入によって削除済みレコードの除去が妨げられなければそのファイルの最後のレコードであったと考えられるレコードで再編成が開始されます。
直前の再編成が正常に完了し,削除済みレコードを除去できた場合は,ファイル内の最初のレコードで再編成が開始されます。
再編成が,直前に取り消された再編成から続いている場合,*PRVRGZは無視されます。
*PRVRGZを指定した場合は,ALWCANCEL(*YES)を指定しなければならず,またKEYFILE(*RPLDLTRCD)かKEYFILE(*NONE)のいずれかを指定しなければなりません。
- 1から4294967288
- 再編成する最初のレコードのレコード番号を指定します。
1より大きいレコード番号を指定した場合は,ALWCANCEL(*YES)を指定しなければならず,またKEYFILE(*RPLDLTRCD)かKEYFILE(*NONE)のいずれかを指定しなければなりません。
上 |
ソース更新オプション (SRCOPT)
物理ソース・ファイルの場合に限り,メンバーが順序番号フィールドに新しい番号を入れるか,日付フィールドにゼロを入れるか,あるいはこの両方のフィールドを変更するか,そのいずれかを指定します。変更はレコードの圧縮または再編成が済んだ後で行われます。
単一値
- *SAME
- レコードの順序番号フィールドおよび日付フィールドは変更されません。
その他の値
- *SEQNBR
- レコードの順序番号フィールドに新しい順序番号が入れられます。SRCSEQパラメーターは,開始値および追加される値を指定します。
- *DATE
- レコードの日付フィールドに空の日付(000000)が入れられます。
上 |
ソース・ステートメントの順序番号付け (SRCSEQ)
SRCOPTパラメーターに*SEQNBRも指定した時に限り,ソース・ファイル・メンバーの最初のレコードに与える順序番号,およびそのメンバーの他のすべてのレコードの番号を付け直すために使用する増分値を指定します。このパラメーターを指定しないで,メンバーに番号の付け直しが行われる場合には,順序番号および増分値はともに1.00とみなされます。
要素1: 開始順序番号
- 1.00
- メンバーの最初のソース・レコードが,順序番号0001.00になります。
- 0.01から9999.99
- メンバーの最初のソース・レコードの順序番号を指定してください。最大4桁の整数または最大2桁の小数部を指定することができます。開始値に小数部を含める場合には,小数点を使用しなければなりません。
要素2: 増分番号
- 1.00
- メンバー内のソース・レコードの順序番号は,整数の増分値1を用いて付け直されます(例えば,1.00, 2.00, 3.00...など)。.
- 0.01から9999.99
- 最初のレコードの後にあるすべてのソース・レコードの番号を付け直すための増分値を指定してください。4桁を越えない整数または2桁を越えない小数部を指定することができます。増分値に小数部を含める場合には,小数点を使用しなければなりません。
例えば,SRCSEQ(5000 10)を指定した場合には,再編成されるメンバーの中の最初のレコードの番号は5000.00となり,2番目は5010.00,3番目は5020.00などとなります。SRCSEQ(*N .25)を指定した場合には,レコードの番号は1.00, 1.25, 1.50, 1.75, 2.00,などとなります。開始値を.01として増分値を.01と指定した場合には,使用可能な固有の順序番号が999,999個あることになります。最大順序番号9999.99に達した場合には,残りのレコードにも順序番号9999.99が割り当てられます。
上 |
レコード様式 (RCDFMT)
複数様式論理ファイルの順序に従って物理ファイル・メンバーを再編成する場合には,レコード様式名を指定します。
- *ONLY
- キー・ファイル (KEYFILE)パラメーターによって指定されている論理ファイルにはレコード様式が1つしかありません。その様式が,物理ファイル・メンバーの再編成のために使用されます。
- 名前
- 複数様式論理ファイルの場合に,物理ファイル・メンバーの再編成に使用するレコード様式を1つ選んで,その名前を指定してください。
上 |
例
例1:レコードの削除による再編成
RGZPFM FILE(PAYROLL) MBR(MBR1)
このコマンドは,PAYROLLファイルのメンバーMBR1を,そのファイル・メンバーから削除済みレコードを除去して圧縮します。
例2:削除済みレコードの置き換えによる再編成
RGZPFM FILE(PAYROLL) MBR(MBR1) KEYFILE(*RPLDLTRCD) ALWCANCEL(*YES) LOCK(*EXCLRD)
このコマンドは,PAYROLLファイルのメンバーMBR1を,そのファイルの先頭にある削除済みレコードをファイルの終わりにある有効なレコードで置き換えることによって圧縮します。再編成の進行中にコマンドを取り消し,他のジョブがPAYROLLファイルからデータを読み取れるようにすることができます。
例3:キー順での再編成
RGZPFM FILE(QCLSRC) MBR(CLMBR2) SRCOPT(*SEQNBR *DATE) KEYFILE(*FILE) SRCSEQ(1.00 .25)
このコマンドは,CLソース・ファイルQCLSRCのメンバーCLMBR2を,順序番号フィールドをキーとして使用し,キー順で再編成します。元のメンバーが再編成されると,再編成されたメンバーは新しい順序番号(1.00から始まり,.25ずつ増える)をもち,すべてのレコードにヌルの日付 (000000)が入れられます。
上 |
エラー・メッセージ
*ESCAPE メッセージ
- CPF2981
- &2のファイル&1のメンバー&3は再編成されなかった。
- CPF3135
- メンバー&2のアクセス・パスは既に使用中である。
- CPF32B8
- 分散ファイル・エラー。理由コードは&3です。
- CPF32CF
- 分散ファイル・エラー。理由コードは&3です。
- CPF32C3
- 分散ファイル・エラー,レベルIDが一致していない。
- CPF9801
- ライブラリー&3にオブジェクト&2が見つからない。
- CPF9809
- ライブラリー&1をアクセスすることができない。
- CPF9810
- ライブラリー&1が見つかりません。
- CPF9820
- ライブラリー&1の使用は認可されていない。
*NOTIFY メッセージ
- CPF2985
- ソースの順序番号が許可された最大値を超えた。(G C)
上 |