MSS には数多くのユーティリティ プログラムがあります。これらのユーティリティの多くは、一般に使用されているメインフレーム バッチ ユーティリティの機能をエミュレートします。これらのユーティリティは、JCL ジョブストリームまたは REXX exec で呼び出すことができます。
ユーティリティ プログラムには、次の 2 つのタイプがあります。
この章では、必要に応じて独自のユーティリティ プログラムを記述する方法についても説明します。詳細については、『独自のユーティリティ プログラムの記述』を参照してください。
このセクションでは、メインフレーム エミュレーション ユーティリティについて説明します。これらのユーティリティは、メインフレームの場合と同じプログラム名、データ セット、およびコマンドを使用して JCL ジョブストリームまたは REXX exec で呼び出すことができます。MSS によってエミュレートされるメインフレーム ユーティリティは次のとおりです。
このセクションでは、これらのユーティリティを MSS 環境で使用する場合に適用される特別な考慮事項について説明します。これには、メインフレームと MSS 環境で同一である動作に関する情報は含まれません。このセクションで言及しているメインフレーム ユーティリティの詳細については、IBM の関連マニュアルを参照してください。 注:IKJEFT01 によって呼び出されたプログラムをデバッグする場合は、それと同等の MSS ユーティリティである IDAEFT01 を、デバッグするプログラムとして指定する必要があります。
MFJSORT は、DFSORT および SORT メインフレーム ユーティリティをエミュレートします。MFJSORT では、順次データ セットに対する次のソート/マージ操作が提供されます。 このセクションでは、MFJSORT ユーティリティで使用される JCL 文について説明します。
EXEC 文では、MFJSORT という名前のプログラム、あるいはそれのエイリアスである DFSORT または SORT を指定する必要があります。その例を次に示します。
MFJSORT を使用する場合は、常に次の DD 文が必要です。 次の DD 文はオプションです。 //MFJSTATS DD SYSOUT=* というコマンドを JCL 文に追加すると、ASCII スプール出力の形式で統計レポートを作成できます。 メインフレーム エミュレーションのもとでソートが実行されていない場合は、MFJSTATS 環境変数を使用して統計レポートを作成できます。詳細については、『ユーザーガイド』の付録『環境変数』にある 『MFJSTATS』 のセクションを参照してください。
MFJSORT によってサポートされるプログラム制御文を制限事項と共に次に示します。文のコード化のルールは、メインフレーム ユーティリティと同じです。ソート/マージ操作 (MFJSORT)
JCL 文
EXEC 文
//STEPEXEC PGM=DFSORT,......
DD 文
統計レポートの作成
プログラム制御文
MFJSORT は、それに相当するメインフレームのユーティリティと同様に、E15 読み取り出口および E35 書き込み出口に対するユーザー出口プログラムを呼び出します。出口プログラムは、COBOL で記述し、Micro Focus 構文チェッカーでコンパイルする必要があります。これらの出口プログラムは、他の COBOL プログラムと同様に、普通に実行したり、デバッグすることができます。出口プログラムの記述とテストの手順については、メインフレームのマニュアルを参照してください。
MFJSORT は、標準リンケージ領域を E15 および E35 出口プログラムに提供します。標準リンケージ領域は、メインフレーム ユーティリティと互換性があり、次のように定義する必要があります。
COBOL 文 | 値 |
---|---|
RECORD-FLAGS PIC 9(8) COMP | 0 は、渡された最初のレコードを示します。4 は、渡された後続のレコードを示します。8 は、渡された最後のレコードを示します。 |
ENTRY-BUFFER PIC X(n) | 入力レコードの内容。この領域は変更しないでください。 |
EXIT-BUFFER PIC X(n) | 出口によって提供された新規または変更済みのレコードの内容 |
UNUSED-ENTRY PIC 9(8) COMP | 未使用 |
UNUSED-ENTRY PIC 9(8) COMP | 未使用 |
ENTRY-RECORD-LENGTH PIC 9(8) COMP | 入力レコードの長さ |
EXIT-RECORD-LENGTH PIC 9(8) COMP | 出口によって提供された新規または変更済みのレコードの長さ |
UNUSED-ENTRY PIC 9(8) COMP | 未使用 |
EXIT-AREA-LENGTH PIC 9(4) COMP | 出口領域スクラッチパッドの長さ。このフィールドは変更しないでください。 |
EXIT-AREA PIC X(n) | 出口プログラムの呼び出し間で変数を維持するために出口によって使用される出口領域スクラッチパッド。 |
次の表に示すように、MFJSORT は出口プログラムから、メインフレーム ユーティリティと同じ戻りコードを認識します。
戻りコード | 意味 |
---|---|
0 | 必要なアクションはありません。 |
4 | 現在のレコードを削除します。E15 の場合、レコードはソートされません。E35 の場合、レコードは出力データ セットに書き込まれません。 |
8 | この出口を再度呼び出さないでください。出口処理は不要になっています。 |
12 | 現在のレコードを挿入します。E15 の場合、レコードはソート用に挿入されます。E35 の場合、レコードは出力データ セットに書き込まれます。 |
16 | MFJSORT を終了させます。ジョブ ステップは、16 に設定された条件コードで終了します。 |
20 | 現在のレコードを変更します。E15 の場合、変更されたレコードはソートに渡されます。E35 の場合、変更されたレコードは出力データ セットに書き込まれます。 |
MSS は、SYNCSORT 動作の限定的なエミュレーションも提供します。SYNCSORT エミュレーションの動作は、次の点を除き、DFSORT エミュレーションの動作と基本的に同じです。
SYNCSORT を使用することを指定するには、現在使用しているエンタープライズ サーバーの [Server > Properties > General] ページにある [Configuration Information] で環境変数 MFJSENGINE=SYNCSORT を設定します。
MFJAMS は、IDCAMS メインフレーム ユーティリティの主要な機能をエミュレートします。MFJAMS では、VSAM キー順データ セット (Key-Sequenced Data Sets; DSDS)、入力順データ セット (Entry-Sequenced Data Dets; ESDS)、および相対レコード データ セット (Relative-Record Data Sets; RRDS) に対する次の管理サービスが提供されます。
これらのサービスの一部は、順次データ セット、区分データ セット、および世代別データ グループに使用できます。これらのコマンドの略称とパラメーターは、メインフレーム上で有効なものであれば、すべて MFJAMS によってサポートされます。
MFJAMS は、JCL ジョブストリームまたは REXX exec によって実行できます。
VSAM アクセス方式サービスの詳細については、IBM のマニュアル『DFSMS/MVS Access Method Services for VSAM』(SC26-4905) を参照してください。
メインフレームとは異なり、VSAM KSDS または ESDS データ セットは、Windows または UNIX では通常 2 つのファイルで表されます。1 つは、VSAM データ セットの実際のデータ レコードが含まれているデータ ファイル、もう 1 つは、主キー データと代替キー データが含まれている索引ファイルです。通常、これらのファイルには、ファイル名の拡張子として .dat と .idx がそれぞれ付いています。例外は、IDXFORMAT8 ファイルが使用されている場合です。これらには .dat ファイルしかありません。
2 ファイル構造は IDCAMS コマンドの処理方法に影響しますが、コマンドの最終的な結果は変わりません。非メインフレーム環境におけるコマンド実行の結果は、メインフレームの場合と同じです。MFJAMS は、非メインフレーム環境では関連性がないコマンドの部分を無視します。例えば、Windows または UNIX のもとでの VSAM ファイル構造では、操作する CI または CA サイズが提供されないため、これらのコマンド パラメーターは無視されます。
このセクションでは、MFJAMS ユーティリティで使用される JCL 文について説明します。
EXEC 文では、プログラム名の MFJAMS、あるいはそれのエイリアスである IDCAMS を指定する必要があります。その例を次に示します。
//STEPEXEC PGM=IDCAMS,.......
MFJAMS を使用する場合は、常に次の DD 文が必要です。
次の DD 文は、一部のコマンドによって使用されます。
このセクションでは、MFJAMS コマンドについて説明します。
ALTER コマンドは、MVS データ セットの属性を変更します。
MFJAMS は、次の表に示したパラメーターを使用します。他のパラメーターは、すべて無視されます。
data-set-name | 名前変更されるデータ セットの名前。このパラメーターは必須です。 |
NEWNAME(data-set-name) | データ セットの新しい名前。このパラメーターは必須です。 |
* を修飾子として使用して、複数のデータ セットの名前を 1 つのコマンドで変更することはできません。例えば、ABC.*.FILE は許可されません。
DEFINE ALTERNATEINDEX コマンドは、既存の VSAM データ セットに対する代替索引を作成します。また、自動的にデータ セットを再索引付けして、PC 上のデータと索引ファイルの間の整合性を維持します。代替索引は、主索引と同じファイルに含まれます。
MFJAMS は、次の表に示したパラメーターを使用します。他のパラメーターは、すべて無視されます。
NAME(data-set-name) | データ セットの名前。このパラメーターは必須です。 |
KEYS(length offset) | 代替キー フィールドの長さとオフセット (0 に対する相対値)。オフセットは、レコードの最初の 4,096 バイト内になければなりません。長さにオフセットを加えた値は、レコードの最大長を超えない必要があります。デフォルトは KEYS(64 0) です。 |
UNIQUEKEY | レコード内の各代替キー値は一意です。 |
NONUNIQUEKEY | 代替キー値には重複が含まれている可能性があります。 |
RELATE(data-set-name) | 代替索引が関連付けられるカタログ式 VSAM データ セットの名前です。 |
DEFINE CLUSTER コマンドは、新しい VSAM データ セットを作成します。このコマンドにより、データおよび索引ファイルがローカル マシン上に作成され、データ セット名がカタログされます。
MFJAMS は、次の表に示したパラメーターを使用します。他のパラメーターは、すべて無視されます。
NAME(data-set-name) | VSAM データ セットの名前。このパラメーターは必須です。 |
INDEXED | KSDS データ セットの定義中 |
NONINDEXED | ESDS データ セットの定義中 |
NUMBERED | RRDS データ セットの定義中 |
KEYS(length offset) | KSDS データ セットに対する主キー フィールドの長さとオフセット (0 に対する相対値)。オフセットは、レコードの最初の 4,096 バイト内になければなりません。長さにオフセットを加えた値は、レコードの最大長を超えない必要があります。デフォルトは KEYS(64 0) です。 |
RECORDSIZE(average maximum) | 10 進数フォーマットで表されたレコードの平均長と最大長。平均長と最大長が同じ場合は、固定長フォーマットとみなされます。平均長と最大長が異なる場合は、可変長フォーマットとみなされます。デフォルトは RECORDSIZE(4089 4089) です。 |
MODEL(data-set-name) | この新しいデータ セットと同じ KEYS および RECORDSIZE パラメーターを持ったカタログ式 VSAM データ セットの名前。これは、パラメーターの明示的な指定の代わりとなるものです。 |
クラスターを定義する典型的なジョブを次に示します。
//DEFCLUS JOB CLASS=A //IDCSTEP EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER(NAME(TEST.KSDS.DUMMY) KEYS(5,0) - RECORDSIZE(80,80))
DEFINE CLUSTER 文で継続文字 (-) を使用していることに注目してください。
DEFINE PATH コマンドを使用すると、MFJAMS がダミーのパス データ セットを作成します。これにより、そのデータ セットを参照する DD 文はどれも失敗しなくなります。MFJAMS はメインフレームとは異なる方法でこの機能を実装するため、ダミーのパス データ セットが他の用途で必要になることはありません。
MFJAMS は、次の表に示したパラメーターを使用します。他のパラメーターは、すべて無視されます。
NAME(data-set-name) | パス データ セットの名前。このパラメーターは必須です。 |
DELETE コマンドは、最大 99 個のデータ セットを削除します。このコマンドは、VSAM データ セットと非 VSAM データ セットの両方に使用できます。このコマンドにより、データ セットに関連付けられたローカル ファイルは削除され、そのエントリはカタログから削除されます。
MFJAMS は、次の表に示したパラメーターを使用します。他のパラメーターは、すべて無視されます。
data-set-names | 削除されるデータ セットの名前。このパラメーターは必須です。ブランクで区切って括弧で囲んだ名前のリストを指定できます。また、'*' を修飾子として使用して総称名を指定することもできます。例えば、総称データ セット名の ABC.*.FILE は、ABC を最初の修飾子、任意の値を 2 番目の修飾子、FILE を 3 番目 (最後の) 修飾子として使用したすべてのデータ セットを意味します。 |
FORCE | すべての GDG データ セットが GDG カタログ エントリと共に削除されます。 |
NOFORCE | GDG データ セットが存在する場合は、GDG カタログ エントリは削除されません。 |
FORCE と NOFORCE は相互に排他的です。デフォルトは NOFORCE です。
LISTCAT コマンドは、カタログに含まれているデータ セット名をリストします。
MFJAMS は、次の表に示したパラメーターを使用します。他のパラメーターは、すべて無視されます。
ENTRIES(data-set-names) | リストされるデータ セットの名前。ブランクで区切った名前のリストを指定できます。また、'*' を修飾子として使用して総称名を指定することもできます。例えば、総称データ セット名の ABC.*.FILE は、ABC を最初の修飾子、任意の値を 2 番目の修飾子、FILE を 3 番目 (最後の) 修飾子として使用したすべてのデータ セットを意味します。 |
LEVEL(level) | リストされるデータ セットのプレフィックス修飾子。例えば、ABC のレベルは、最初の高レベル修飾子として ABC を使用したすべてのデータ セットを意味します。 |
ENTRIES と LEVEL は相互に排他的であり、いずれか一方のみ指定できます。どちらも指定されていない場合は、LEVEL(*) がデフォルトになります。
PRINT コマンドは、VSAM データ セットと非 VSAM データ セットの両方の内容を印刷します。このコマンドにより、完全なデータ セット、またはデータ セットの一部が文字フォーマット、16 進フォーマット、またはその両方のフォーマットで印刷されます。
MFJAMS は、次の表に示したパラメーターを使用します。他のパラメーターは、すべて無視されます。
INFILE(ddname) | 印刷されるデータ セットの名前を指定する (このジョブ ステップの JCL に含まれている) DD 文の名前 |
INDATASET(data-set-name) | 印刷されるデータ セットの名前 |
OUTFILE(ddname) | 印刷出力用の DD 文の名前。データ セットは、少なくとも 121 の LRECL 値を持っている必要があります。OUTFILE を省略した場合は、SYSPRINT DD 文とみなされます。 |
FROMKEY(key) | 印刷する最初のレコードのキー (VSAM KSDS データ セットの場合のみ)。同じ主キーを持つレコード、または最も近い上位キーを持つレコード (正確に一致するものがない場合) で印刷が開始されます。代替索引は使用されません。 |
TOKEY(key) | 印刷する最後のレコードのキー (VSAM KSDS データ セットの場合のみ)。同じ主キーを持つレコード、最も近い上位キーを持つレコード (正確に一致するものがない場合)、またはファイルの終わりで印刷が終了します。代替索引は使用されません。 |
SKIP(number) | 印刷を開始する前にスキップするレコードの数。 |
COUNT(number) | 印刷するレコードの数。 |
CHARACTER | 文字フォーマットでレコードが印刷されます。MFJAMS は、EBCDIC データ セットを ANSI に変換します。印刷できない文字は、ピリオドとして印刷されます。 |
HEX | 16 進フォーマットでレコードが印刷されます。MFJAMS は、レコード内の各バイトを 2 バイトの 16 進値として印刷します。 |
DUMP | 16 進フォーマットと文字フォーマットの両方で、記憶域ダンプとしてレコードが印刷されます。MFJAMS は、EBCDIC データ セットを ANSI に変換します。印刷できない文字は、ピリオドとして印刷されます。 |
REPRO は、データ セットの内容を別のデータ セットにコピーします。データ セットの編成は、VSAM 編成または順次編成にすることができます。したがって、REPRO コマンドは次の処理を実行できます。
MFJAMS は、次の表に示したパラメーターを使用します。他のパラメーターは、すべて無視されます。
INFILE(ddname) | 入力に使用されるデータ セットの名前を指定する (このジョブ ステップの JCL に含まれている) DD 文の名前。 |
INDATASET(data-set-name) | 入力に使用されるデータ セットの名前。 |
OUTFILE(ddname) | 出力に使用されるデータ セットの名前を指定する (このジョブ ステップの JCL に含まれている) DD 文の名前。 |
OUTDATASET(data-set-name) | 出力に使用されるデータ セットの名前。 |
FROMKEY(key) | コピーする最初のレコードのキー (VSAM KSDS の場合のみ)。同じ主キーを持つレコード、または最も近い上位キーを持つレコード (正確に一致するものがない場合) でコピーが開始されます。代替索引は使用されません。 |
TOKEY(key) | コピーする最後のレコードのキー (VSAM KSDS の場合のみ)。同じ主キーを持つレコード、最も近い上位キーを持つレコード (正確に一致するものがない場合)、またはファイルの終わりでコピーが終了します。代替索引は使用されません。 |
SKIP(number) | コピーを開始する前にスキップするレコードの数。 |
COUNT(number) | コピーするレコードの数。 |
REPLACE | 入力データ セット内のレコードは、同じ主キーを持つ出力データ セット内のレコードに取って代わります (VSAM ファイルの場合のみ)。 |
NOREPLACE | 入力データ セット内のレコードは、同じ主キーを持つ出力データ セット内のレコードに取って代わりません (VSAM ファイルの場合のみ)。 |
SET コマンドは、このジョブ ステップ内の以前の MFJAMS コマンドによって設定された条件コードを変更します。MFJAMS は、下記の MAXCC および LASTCC パラメーターだけを使用します。他のパラメーターは、すべて無視されます。
MAXCC=number | 以前のすべての MFJAMS コマンドによって生成された最大条件コードに対して設定される値。 |
LASTCC=number | MFJAMS コマンドによって生成された最終条件コードに対して設定される値。 |
いずれの場合も、最高有効値は 16 です。それよりも高い値を指定した場合は、MFJAMS によって条件コードが 16 に設定されます。
VERIFY コマンドは、VSAM データ セットが読み取り可能であること、および索引が使用可能であることを確認するために VSAM データ セットのオープンを試みます。VSAM データ セットがエラーなしにオープンできる場合や別のプロセスにロックされている場合は、そのデータ セットは読み取り可能であるとみなされます。
索引を使用できないことが分かった場合、VERIFY コマンドは、主キーとすべての代替キーに対する新しい索引ファイルを作成して索引を再構築します。データ セットのデータ部分は変更されません。
MFJAMS は、次の表に示したパラメーターを使用します。他のパラメーターは、すべて無視されます。
FILE(ddname) | 確認されるデータ セットの名前を指定する (このジョブ ステップの JCL に含まれている) DD 文の名前。 |
DATASET(data-set-name) | データ セットの名前。 |
FILE と DATASET は相互に排他的です。いずれか一方を指定してください。
2 つの順次または区分データ セットを比較するには、MFJMATCH ユーティリティを使用します。MFJMATCH は、その呼び出しに使用した EXEC 文に応じて、2 つのモードで機能します。
EXEC 文 | 説明 |
---|---|
PGM=IEBCOMPR | MFJMATCH は、IEBCOMPR メインフレーム ユーティリティをエミュレートします。 |
PGM=MFJMATCH | MFJMATCH はデータ セット比較を実行しますが、IEBCOMPR メインフレーム ユーティリティをエミュレートしません。 |
このセクションでは、MFJMATCH を使用して IEBCOMPR メインフレーム ユーティリティをエミュレートする方法について説明します。非 IEBCOMPR バージョンの MFJMATCH を使用する方法については、『データ セットの比較 (MFJMATCH)』 を参照してください。
このセクションでは、MFJMATCH ユーティリティで使用される JCL 文について説明します。
注:IEBCOMPR の代わりに MFJMATCH を EXEC 文で指定すると、MFJMATCH はデータ セットの比較 (MFJMATCH) で説明したように動作します。
MFJMATCH を使用する場合は、常に次の DD 文が必要です。
次の DD 文はオプションです。
次の制御文は解析されますが、処理されません。
MFJCOPY は、区分データ セットのコピーとマージについて IEBCOPY メインフレーム ユーティリティの操作をエミュレートします。
このセクションでは、MFJCOPY ユーティリティで使用される JCL 文について説明します。
EXEC 文では、プログラム名の MFJCOPY、あるいはそれのエイリアスである IEBCOPY を指定する必要があります。その例を次に示します。
//STEPEXEC PGM=IEBCOPY, ...
MFJCOPY を使用する場合は、常に次の DD 文が必要です。
次の DD 文はオプションです。
メインフレーム ユーティリティによって使用される次の DD 文は、MFJCOPY では無視されます。
次の制御文は解析されますが、処理されません。
メインフレームと MSS での動作上の違いとしては、他に次のようなものがあります。
MFJGENER は、順次データ セット (つまり、PS または PSU データ セット、あるいは PO または POU データ セットのメンバー) について IEBGENER メインフレーム ユーティリティの基本コピー操作をエミュレートします。MFJGENER では、SYSIN データ セットで指定されたコマンドは無視されます。
このセクションでは、MFJGENER ユーティリティで使用される JCL 文について説明します。
EXEC 文では、プログラム名の MFJGENER、あるいはそれのエイリアスである IEBGENER を指定する必要があります。その例を次に示します。
//STEPEXEC PGM=IEBGENER,......
メインフレーム ユーティリティによって使用される次の DD 文は、MFJGENER では無視されます。
次のリストでは、MFJGENER による制御文の処理が IEBGENER とどのように違うかを説明します。
MFJUPDTE は、順次または区分データ セットの作成や変更について IEBUPDTE メインフレーム ユーティリティをエミュレートします。
このセクションでは、MFJUPDTE ユーティリティで使用される JCL 文について説明します。
EXEC 文では、プログラム名の MFJUPDTE、あるいはそれのエイリアスである IEBUPDTE を指定する必要があります。その例を次に示します。
//STEPEXEC PGM=IEBUPDTE, ...
次の DD 文は必須です。
次の制御文は解析されますが、処理されません。
関数文 (ADD、CHANGE、REPL、または REPRO) に対する次のサブオペランドは解析されますが、処理されません。
MFJBR14 は、IEFBR14 メインフレーム ユーティリティをエミュレートします。このユーティリティは、単に呼び出し元に戻ることによってダミー プログラム機能を提供します。例えば、ジョブ ステップで MFJBR14 を使用してデータ セットを適時に削除することができます。また、MFJBR14 を使用して、ローカル マシン上にバージョンがないプログラムを置き換えることもできるため、ジョブ ステップに対するデータ セットの割り当てとディスポジションを引き続きテストすることができます。
このセクションでは、MFJBR14 ユーティリティで使用される JCL 文について説明します。
EXEC 文では、プログラム名の MFJBR14、あるいはそれのエイリアスである IEFBR14 を指定する必要があります。その例を次に示します。
//STEPEXEC PGM=IEFBR14,......
IDAEFT01 は、IKJEFT01 メインフレーム ユーティリティ プログラムをエミュレートします。IDAEFT01 はバッチで TSO セッションを開始し、SYSTSIN DD 文によって定義されたデータ セットに含まれている TSO コマンドをその TSO セッションが実行します。
SYSTSIN データ セットには MSS がサポートしている TSO および DB2 コマンドをどれでも含めることができますが、通常は、バッチ モードで DB2/TSO アプリケーションを実行する場合に IDAEFT01 を使用します。そのようなアプリケーションの最小限の入力は、次のとおりです。
DSN SYSTEM(system) RUN PROGRAM(name) PARM(parm-string) .... END
パラメーター | 説明 |
---|---|
SYSTEM(system) | DB2 システムの名前を指定します。 |
PROGRAM(name) | 実行されるプログラムの名前を指定します。必要な指令を設定していれば、IDAEFT01 はCOBOL 開発システム内でコンパイルされる任意のアプリケーション プログラムを実行できます。 |
PARM(parm-string) | 標準リンケージ領域を通じてプログラムに渡されるパラメーター文字列を指定します。 |
DB2 アプリケーションを実行する場合は、データベース マネージャーの XA リソースを定義する必要があります。この操作は、ES Admin または ESMAC のいずれかで行うことができます。
このセクションでは、IDAEFT01 ユーティリティで使用される JCL 文について説明します。
EXEC 文では、プログラム名の IDAEFT01、あるいはそれのエイリアスである IKJEFT01 を指定する必要があります。その例を次に示します。
//STEPEXEC PGM=IKJEFT01,PARM='initial-command',.......
また、アプリケーション プログラムによってアクセスされる順次および VSAM データ セットに対する任意の DD 文を含めることもできます。
MFIRXJCL は、IRXJCL メインフレーム ユーティリティ プログラムをエミュレートします。MFIRXJCL はバッチ モードで MVS セッションを開始し、PARM パラメーターで指定された REXX exec を実行します。MSS における REXX サポートの詳細については、『REXX サポート』の章を参照してください。
このセクションでは、MFIRXJCL ユーティリティで使用される JCL 文について説明します。
EXEC 文では、プログラム名の MFIRXJCL、またはそのエイリアスである IRXJCLを指定し、REXX exec の名前を PARM パラメーターの最初のワードとして指定する必要があります。その例を次に示します。
//STEPEXEC PGM=IRXJCL,PARM='REXXEXEC'
また、exec によってアクセスされるデータ セットに対する DD 文もすべて含める必要があります。
MFJDG は、テスト データの作成について IEBDG メインフレーム ユーティリティをエミュレートします。
このセクションでは、MFJDG ユーティリティで使用される JCL 文について説明します。
EXEC 文では、プログラム名の MFJDG または IEBDG を指定する必要があります。その例を次に示します。
//STEPEXEC PGM=IEBDG, ...
exec 文の PARM はすべて無視されます。
次の DD 文は必須です。
次のサブオペランドは解析されますが、処理されません。
このセクションでは、Micro Focus ユーティリティの MFJMATCH について説明します。
MFJMATCH ユーティリティは、2 つの MVS データ セットを比較します。このユーティリティでは、ユーザーの COBOL 開発システム によってサポートされる任意のレコード フォーマット、レコード長、またはデータ セット編成が許容されます。データ セットが一致した場合、MFJMATCH ユーティリティは 0 の戻りコードで終了します。2 つのデータ セットが一致しない場合、MFJMATCH ユーティリティは、最初の不一致を検出すると、異なる 2 つのレコードを第 3 のデータ セットに書き込んでから (異なるカラムの下にアスタリスクが付く)、12 の戻りコードで終了します。最初の不一致の後に続くレコードは比較されません。
注:
MFJMATCH ユーティリティを使用して、IEBCOMPR メインフレーム ユーティリティをエミュレートすることもできます。この操作については、『データ セットの比較 (MFJMATCH - IEBCOMPR)』 を参照してください。
比較されるデータ セットが EBCDIC の場合、MFJMATCH ユーティリティは 16 進表現も書き込みます。
このセクションでは、MFJMATCH ユーティリティで使用される JCL 文について説明します。
EXEC 文では、プログラム名の MFJMATCH を指定する必要があります。その例を次に示します。
//STEPEXEC PGM=MFJMATCH
次の DD 文は必須です。
MFJMATCH によってサポートされるプログラム制御文を次に示します。プログラム制御文では、特定のレコード範囲とレコードの一部に照合を限定する検索条件が定義されます。
プログラム制御文 | 説明 | ||||
---|---|---|---|---|---|
KEY=(start,length) | FROMKEY および TOKEY プログラム制御文によって使用されるキー フィールドを定義します。この文は一つだけ書くことができます。パラメーターは次のとおりです。
VSAM キー付きファイルの場合、KEY はデフォルトで実際のキーに設定されます。ただし、ファイルは順次に処理されるため、レコード照合の範囲を指定する目的で任意のフィールドをキーとして定義することができます。 |
||||
INCLUDE | FROMKEY TOKEY または FROMREC COUNT によって定義された範囲でのみレコードを比較します。
SKIP と INCLUDE は相互に排他的です。 |
||||
SKIP | FROMKEY TOKEY または FROMREC COUNT によって定義された範囲内にあるレコードを無視します。
SKIP と INCLUDE は相互に排他的です。 |
||||
FROMKEY='value1' TOKEY='value2' | レコードの範囲を定義します。value1 では範囲内の最初のレコードを指定し、value2 では範囲内の最後のレコードを指定します。16 進値は、x'hhhhhh' として指定できます (hhhhhh は 16進数)。 | ||||
FROMREC=x COUNT=y | レコード番号の範囲を定義します (レコード番号 x から y 個のレコード)。 | ||||
FD=(start,length) | レコードの比較時に無視されるフィールドを定義します (INCLUDE との併用のみ)。 |
次の例では、
//SYSIN DD * KEY=(1,10) INCLUDE FROMKEY='AAAAAAAAAA' TOKEY='BBBBBBBBBB' INCLUDE FROMKEY='WWWWWWWWWW' TOKEY='YYYYYYYYYY' FD=(11,5) FD=(21,5)
場合によっては、独自のユーティリティ プログラムを記述したり、他のソフトウェア ベンダーからユーティリティ プログラムを入手したりする必要があります。これらのプログラムが TSO コマンドまたは JCL 文によって呼び出されると、MSS は標準 MVS パラメーター領域をこれらのプログラムに渡します。
COBOL プログラムの場合、パラメーター領域には次の定義があります。
01 PARM. 03 PARM-LENGTH PIC 9(4)COMP. 03 PARM-DATA. 05 PARM-DATA-ARRAY PIC X OCCURS 100.
PARM-DATA には、TSO コマンドまたは JCL 文のパラメーター フィールドで指定されたデータが含まれます。MSS は、そのデータをシステムに対して定義されたデフォルトのデータ表現 (ANSI または EBCDIC) に変換します。ユーティリティ プログラムでは、パラメーター データを検査してそのデータ表現を確認し、必要に応じてプログラムで使用される表現に変換する必要があります。
注:システムとの対話がすべて正しく処理されるようにするには、ユーザーの COBOL 開発システムでユーティリティ プログラムをコンパイルする必要があります。