物理ファイル・メンバー再編成 (RGZPFM)

物理ファイル・メンバー再編成(RGZPFM)コマンドは,データベース内の物理ファイルの1メンバーから削除済みレコードを除去(メンバーを圧縮)し,必要ならばそのメンバーを再編成します。

キー・ファイル(KEYFILE)パラメーターにキー順ファイルが示されている場合には,システムは,記憶域中のレコードの物理順序を物理ファイル・メンバーのアクセス・パスのキー順に合うように変更するか,あるいは物理ファイルの上に定義されている論理ファイル・メンバーのアクセス・パスに合うように変更することによって,メンバーを再編成します。再編成によって,プログラムがキー順物理ファイルまたはキー順論理ファイルを順序に読み取る時のファイル処理時間を短縮することができます。

メンバーが再編成されて,KEYFILE(*NONE)が指定されていないと,レコードが実際に記憶される順序が変更され,削除されたレコードはすべてファイルから除去されます。KEYFILE(*NONE)が指定された場合,あるいは省略時の値として使用される場合には,レコードの順序は変更されませんが,削除されたレコードはメンバーから除去されます。任意選択として,新しい順序番号とゼロの日付フィールドがレコードのソース・フィールドに入れられます。これらのフィールドは,メンバーが圧縮または再編成された後で変更されます。

:

制約事項:

パラメーター

キーワード 記述 選択項目 ノーツ
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)