ユーティリティー・プログラム

MSS には数多くのユーティリティー・プログラムがあります。これらのユーティリティーの多くは、一般に使用されているメインフレーム・バッチ・ユーティリティーの機能をエミュレートします。これらのユーティリティーは、JCL ジョブストリームまたは REXX exec で呼び出すことができます。

ユーティリティー・プログラムには、次の 2 つのタイプがあります。

この章では、必要に応じて独自のユーティリティー・プログラムを記述する方法についても説明します。詳細については、独自のユーティリティー・プログラムの記述を参照してください。

メインフレーム・ユーティリティーのエミュレーション

このセクションでは、メインフレーム・エミュレーション・ユーティリティーについて説明します。これらのユーティリティーは、メインフレームの場合と同じプログラム名、データ・セット、およびコマンドを使用して JCL ジョブストリームまたは REXX exec で呼び出すことができます。MSS によってエミュレートされるメインフレーム・ユーティリティーは次のとおりです。

これらの名前は、同等の MSS ユーティリティーのエイリアスとして定義されます。
注意: これらのユーティリティでは入力ファイルが必須な場合もあり、物理的なファイルを作成することなしにカタログすることが可能です。 入力ファイルが存在しない場合に発生する JCLエラーを回避するために環境変数 MFJ_INPUTDS_ERROR=N を使用することができます。これが指定されているとジョブステップの入力ファイルは必須では無いとみなされ、 ほとんどのユーティリティとユーザプログラムは存在しない入力ファイルをレコードがゼロ件のデータファイルとして扱うようになります。 ただし SORTなどいくつかのユーティリティは物理ファイルの存在をチェックして存在しなければエラーを発生します。

このセクションでは、これらのユーティリティーを MSS 環境で使用する場合に適用される特別な考慮事項について説明します。これには、メインフレームと MSS 環境で同一である動作に関する情報は含まれません。このセクションで言及しているメインフレーム・ユーティリティーの詳細については、IBM の関連マニュアルを参照してください。

注:IKJEFT01 によって呼び出されたプログラムをデバッグする場合は、それと同等の MSS ユーティリティーである IDAEFT01 を、デバッグするプログラムとして指定する必要があります。

ソート/マージ操作 (MFJSORT)

MFJSORT は、DFSORT および SORT メインフレーム・ユーティリティーをエミュレートします。MFJSORT では、順次データ・セットに対する次のソート/マージ操作が提供されます。

JCL 文

このセクションでは、MFJSORT ユーティリティーで使用される JCL 文について説明します。

EXEC 文

EXEC 文では、MFJSORT という名前のプログラム、あるいはそれのエイリアスである DFSORT または SORT を指定する必要があります。その例を次に示します。

//STEPEXEC PGM=DFSORT,......
DD 文

MFJSORT を使用する場合は、常に次の DD 文が必要です。

次の DD 文はオプションです。

統計レポートの作成

//MFJSTATS DD SYSOUT=* というコマンドを JCL 文に追加すると、ASCII スプール出力の形式で統計レポートを作成できます。

メインフレーム・エミュレーションのもとでソートが実行されていない場合は、MFJSTATS 環境変数を使用して統計レポートを作成できます。詳細については、『ユーザガイド』の付録『環境変数』にある MFJSTATS のセクションを参照してください。

プログラム制御文

MFJSORT によってサポートされるプログラム制御文を制限事項と共に次に示します。文のコード化のルールは、メインフレーム・ユーティリティーと同じです。

プログラム制御文 説明
ALTSEQ AQ 制御フィールドの代替照合順序を指定します。
END プログラム制御文の終了を示します。省略した場合、MFJSORT はファイルの終わりまで読み取りを行います。
INCLUDE 入力レコード内の 1 つ以上のフィールドの比較テストに基づいて、入力データ・セットのレコードを含めます。サブ文字列比較とビット論理 (ビット演算子およびビット比較) テストをサポートしています。条件式を 16 個まで指定できます。
INREC ソートまたはマージの前に入力レコードを再編成します。INREC は、SORT、MERGE、OUTFIL、OUTREC、および SUM 文によって使用される制御フィールドの位置を変更する可能性があるので注意してください。
MERGE マージ操作を定義します。MERGE 文には、COPY 要求を含めることができます。マージする入力データの部分を選択できます。制御フィールドは 32 個まで定義できますが、制御フィールドの合計長は 1,024 バイト以下でなければなりません。次の制御フィールド・タイプについては昇順または降順を要求することができます。
AQ 代替照合順序
BI バイナリー
CH 文字
CLO または OL 先行オーバーパンチ記号を使用した符号付き数値
CTO または OT 後続オーバーパンチ記号を使用した符号付き数値
CSF または FS オプションの先行浮動記号を使用した符号付き数値
CSL または LS 先行分離記号を使用した符号付き数値
CST または TS 後続分離記号を使用した符号付き数値
FI 固定小数点整数
FL 浮動小数点。4 バイトと 8 バイトの形式のみサポートされます (COMP-1 および COMP-2)。
PD パック 10 進数
PD0 記号と最初の桁が無視されるパック 10 進数
Y2B 2 桁、1 バイトの 2 進の年データ
Y2C または Y2Z 2 桁、2バイトの文字またはゾーン 10進の年データ
Y2D 2 桁、1 バイトの 10 進の年データ
Y2P 2 桁、2 バイトのパック 10 進の年データ
Y2S 2 桁、2バイトの文字またはゾーン 10進の年データ (特殊なインジケーター付き)
ZD ゾーン 10 進数
MODS E15 および E35 出口プログラムの名前を指定します。他の出口はサポートされません。
OMIT 入力レコード内の 1 つ以上のフィールドの比較テストに基づいて、入力データ・セットからレコードを除外します。サブ文字列比較とビット論理 (ビット演算子およびビット比較) テストをサポートしています。条件式を 16 個まで指定できます。
OUTFIL 複数の出力ファイルを書き込みます。OUTFIL では拡張子が考慮されます。
  • 各出力データ・セットに含めるレコードを選択するには、INCLUDE、OMIT、および SAVE オペランドを使用します。 INCLUDE および OMIT オペランドは、 INCLUDE および OMIT 文の機能をすべて提供します。SAVE を使用すると、他のサブセット用に選択されていないレコードを選択できます。
  • OUTREC オペランドでは、長さ、先行ゼロ、抑制ゼロ、記号などに関して数値フィールドの表示方法を編集および制御できます。事前定義された 26 個の編集マスク (M0~M25)が用意されており、 EDIT、SIGNS、および LENGTH オプションなどを使用してユーザー定義のマスクを作成することもできます。入力としての文字、16 進数文字列、またはビット文字列に基づいて、出力の文字または 16 進文字列をルックアップ・テーブルから選択するには、CHANGE オプションを使用します。
  • 各出力データ・セットに含めるレコードの範囲を選択するには、STARTREC および ENDREC オペランドを使用します。
  • 出力データ・セットの中で均一にレコードを分布させるには、SPLIT オペランドを使用します。
  • 数値入力フィールドの合計値、最大値、最小値、および平均値などを含んだ複雑なレポートを作成するには、OUTREC と共に、LINES、HEADER1、TRAILER1、HEADER2、TRAILER2、SECTIONS、および NODETAIL オペランドを使用します。
OUTREC ソートまたはマージの後に出力レコードを再編成します。リテラル変数を出力レコードに挿入することもできます。フォーマットされたレポートの作成だけでなく、レコードの再フォーマットもサポートしています。
RECORD レコード長の情報を指定します。この文の最初の値 (最大レコード長を指定する値) だけが使用され、他の値はすべて無視されます。RECORD 文で指定された値は、入力データ・セットの論理レコード長によってオーバーライドされます。
SORT ソート操作を定義します。SORT 文には、COPY 要求を含めることができます。制御フィールドは 32 個まで定義できますが、制御フィールドの合計長は 1,024 バイト以下でなければなりません。MERGE 文用に説明したものと同じ制御フィールド・タイプについては、昇順または降順を要求することができます。
SUM 重複するソート・フィールドを持ったレコードに対して 1 つの出力レコードだけを生成します。オプションとして、重複レコード内の数値フィールドを出力レコードで合計することができます。合計処理は、次の制御フィールド・タイプの場合に実行できます。
BI バイナリー
FI 固定小数点整数
FL 浮動小数点
PD パック 10 進数
ZD ゾーン 10 進数
出口

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 の場合、変更されたレコードは出力データ・セットに書き込まれます。
SYNCSORT エミュレーション

MSS は、SYNCSORT 動作の限定的なエミュレーションも提供します。SYNCSORT エミュレーションの動作は、次の点を除き、DFSORT エミュレーションの動作と基本的に同じです。

SYNCSORT を使用することを指定するには、現在使用しているエンタープライズ・サーバーの [Server > Properties > General] ページにある [Configuration Information] で環境変数 MFJSENGINE=SYNCSORT を設定します。

VSAM アクセス方式サービス (MFJAMS)

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 サイズが提供されないため、これらのコマンド・パラメータは無視されます。

JCL 文

このセクションでは、MFJAMS ユーティリティーで使用される JCL 文について説明します。

EXEC 文

EXEC 文では、プログラム名の MFJAMS、あるいはそれのエイリアスである IDCAMS を指定する必要があります。その例を次に示します。

//STEPEXEC PGM=IDCAMS,.......
DD 文

MFJAMS を使用する場合は、常に次の DD 文が必要です。

次の DD 文は、一部のコマンドによって使用されます。

コマンド

このセクションでは、MFJAMS コマンドについて説明します。

ALTER

ALTER コマンドは、MVS データ・セットの属性を変更します。

MFJAMS は、次の表に示したパラメータを使用します。他のパラメータは、すべて無視されます。

パラメータ:
data-set-name 名前変更されるデータ・セットの名前。このパラメータは必須です。
NEWNAME(data-set-name) データ・セットの新しい名前。このパラメータは必須です。
コメント:

* を修飾子として使用して、複数のデータ・セットの名前を 1 つのコマンドで変更することはできません。例えば、ABC.*.FILE は許可されません。

DEFINE ALTERNATEINDEX

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

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

DEFINE PATH コマンドを使用すると、MFJAMS がダミーのパス・データ・セットを作成します。これにより、そのデータ・セットを参照する DD 文はどれも失敗しなくなります。MFJAMS はメインフレームとは異なる方法でこの機能を実装するため、ダミーのパス・データ・セットが他の用途で必要になることはありません。

MFJAMS は、次の表に示したパラメータを使用します。他のパラメータは、すべて無視されます。

パラメータ:
NAME(data-set-name) パス・データ・セットの名前。このパラメータは必須です。
DELETE

DELETE コマンドは、最大 99 個のデータ・セットを削除します。このコマンドは、VSAM データ・セットと非 VSAM データ・セットの両方に使用できます。このコマンドにより、データ・セットに関連付けられたローカル・ファイルは削除され、そのエントリーはカタログから削除されます。

MFJAMS は、次の表に示したパラメータを使用します。他のパラメータは、すべて無視されます。

パラメータ:
data-set-names 削除されるデータ・セットの名前。このパラメータは必須です。ブランクで区切って括弧で囲んだ名前のリストを指定できます。また、'*' を修飾子として使用して総称名を指定することもできます。例えば、総称データ・セット名の ABC.*.FILE は、ABC を最初の修飾子、任意の値を 2 番目の修飾子、FILE を 3 番目 (最後の) 修飾子として使用したすべてのデータ・セットを意味します。
FORCE すべての GDG データ・セットが GDG カタログ・エントリーと共に削除されます。
NOFORCE GDG データ・セットが存在する場合は、GDG カタログ・エントリーは削除されません。
コメント:

FORCE と NOFORCE は相互に排他的です。デフォルトは NOFORCE です。

LISTCAT

LISTCAT コマンドは、カタログに含まれているデータ・セット名をリストします。

MFJAMS は、次の表に示したパラメータを使用します。他のパラメータは、すべて無視されます。

パラメータ:
ENTRIES(data-set-names) リストされるデータ・セットの名前。ブランクで区切った名前のリストを指定できます。また、'*' を修飾子として使用して総称名を指定することもできます。例えば、総称データ・セット名の ABC.*.FILE は、ABC を最初の修飾子、任意の値を 2 番目の修飾子、FILE を 3 番目 (最後の) 修飾子として使用したすべてのデータ・セットを意味します。
LEVEL(level) リストされるデータ・セットのプレフィックス修飾子。例えば、ABC のレベルは、最初の高レベル修飾子として ABC を使用したすべてのデータ・セットを意味します。
コメント:

ENTRIES と LEVEL は相互に排他的であり、いずれか一方のみ指定できます。どちらも指定されていない場合は、LEVEL(*) がデフォルトになります。

PRINT

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

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

SET コマンドは、このジョブ・ステップ内の以前の MFJAMS コマンドによって設定された条件コードを変更します。MFJAMS は、下記の MAXCC および LASTCC パラメータだけを使用します。他のパラメータは、すべて無視されます。

パラメータ:
MAXCC=number 以前のすべての MFJAMS コマンドによって生成された最大条件コードに対して設定される値。
LASTCC=number MFJAMS コマンドによって生成された最終条件コードに対して設定される値。
コメント:

いずれの場合も、最高有効値は 16 です。それよりも高い値を指定した場合は、MFJAMS によって条件コードが 16 に設定されます。

VERIFY

VERIFY コマンドは、VSAM データ・セットが読み取り可能であること、および索引が使用可能であることを確認するために VSAM データ・セットのオープンを試みます。VSAM データ・セットがエラーなしにオープンできる場合や別のプロセスにロックされている場合は、そのデータ・セットは読み取り可能であるとみなされます。

索引を使用できないことが分かった場合、VERIFY コマンドは、主キーとすべての代替キーに対する新しい索引ファイルを作成して索引を再構築します。データ・セットのデータ部分は変更されません。

MFJAMS は、次の表に示したパラメータを使用します。他のパラメータは、すべて無視されます。

パラメータ:
FILE(ddname) 確認されるデータ・セットの名前を指定する (このジョブ・ステップの JCL に含まれている) DD 文の名前。
DATASET(data-set-name) データ・セットの名前。
コメント:

FILE と DATASET は相互に排他的です。いずれか一方を指定してください。

データ・セットの比較 (MFJMATCH - IEBCOMPR)

2 つの順次または区分データ・セットを比較するには、MFJMATCH ユーティリティーを使用します。MFJMATCH は、その呼び出しに使用した EXEC 文に応じて、2 つのモードで機能します。

EXEC 文説明
PGM=IEBCOMPR   MFJMATCH は、IEBCOMPR メインフレーム・ユーティリティーをエミュレートします。
PGM=MFJMATCHMFJMATCH はデータ・セット比較を実行しますが、IEBCOMPR メインフレーム・ユーティリティをエミュレートしません。

このセクションでは、MFJMATCH を使用して IEBCOMPR メインフレーム・ユーティリティーをエミュレートする方法について説明します。非 IEBCOMPR バージョンの MFJMATCH を使用する方法については、データ・セットの比較 (MFJMATCH) を参照してください。

JCL 文

このセクションでは、MFJMATCH ユーティリティーで使用される JCL 文について説明します。

EXEC 文

EXEC 文では、MFJMATCH のエイリアスである IEBCOMPR を指定する必要があります。その例を次に示します。

//STEPEXEC PGM=IEBCOMPR, ...

注:IEBCOMPR の代わりに MFJMATCH を EXEC 文で指定すると、MFJMATCH はデータ・セットの比較 (MFJMATCH) で説明したように動作します。

DD 文

MFJMATCH を使用する場合は、常に次の DD 文が必要です。

次の DD 文はオプションです。

制御文

次の制御文は解析されますが、処理されません。

区分データ・セットのコピーとマージ (MFJCOPY)

MFJCOPY は、区分データ・セットのコピーとマージについて IEBCOPY メインフレーム・ユーティリティーの操作をエミュレートします。

JCL 文

このセクションでは、MFJCOPY ユーティリティーで使用される JCL 文について説明します。

EXEC 文

EXEC 文では、プログラム名の MFJCOPY、あるいはそれのエイリアスである IEBCOPY を指定する必要があります。その例を次に示します。

//STEPEXEC PGM=IEBCOPY, ...
DD 文

MFJCOPY を使用する場合は、常に次の DD 文が必要です。

次の DD 文はオプションです。

メインフレーム・ユーティリティーによって使用される次の DD 文は、MFJCOPY では無視されます。

制御文

次の制御文は解析されますが、処理されません。

メインフレームと MSS での動作上の違いとしては、他に次のようなものがあります。

順次データ・セットのコピー (MFJGENER)

MFJGENER は、順次データ・セット (つまり、PS または PSU データ・セット、あるいは PO または POU データ・セットのメンバー) について IEBGENER メインフレーム・ユーティリティーの基本コピー操作をエミュレートします。MFJGENER では、SYSIN データ・セットで指定されたコマンドは無視されます。

JCL 文

このセクションでは、MFJGENER ユーティリティーで使用される JCL 文について説明します。

EXEC 文

EXEC 文では、プログラム名の MFJGENER、あるいはそれのエイリアスである IEBGENER を指定する必要があります。その例を次に示します。

//STEPEXEC PGM=IEBGENER,......
DD 文

次の DD 文は必須です。

メインフレーム・ユーティリティーによって使用される次の DD 文は、MFJGENER では無視されます。

制御文

次のリストでは、MFJGENER による制御文の処理が IEBGENER とどのように違うかを説明します。

データ・セットの作成と変更 (MFJUPDTE)

MFJUPDTE は、順次または区分データ・セットの作成や変更について IEBUPDTE メインフレーム・ユーティリティーをエミュレートします。

JCL 文

このセクションでは、MFJUPDTE ユーティリティーで使用される JCL 文について説明します。

EXEC 文

EXEC 文では、プログラム名の MFJUPDTE、あるいはそれのエイリアスである IEBUPDTE を指定する必要があります。その例を次に示します。

//STEPEXEC PGM=IEBUPDTE, ...
DD 文

次の DD 文は必須です。

制御文

次の制御文は解析されますが、処理されません。

関数文 (ADD、CHANGE、REPL、または REPRO) に対する次のサブオペランドは解析されますが、処理されません。

ダミー・プログラム (MFJBR14)

MFJBR14 は、IEFBR14 メインフレーム・ユーティリティーをエミュレートします。このユーティリティーは、単に呼び出し元に戻ることによってダミー・プログラム機能を提供します。例えば、ジョブ・ステップで MFJBR14 を使用してデータ・セットを適時に削除することができます。また、MFJBR14 を使用して、ローカル・マシン上にバージョンがないプログラムを置き換えることもできるため、ジョブ・ステップに対するデータ・セットの割り当てとディスポジションを引き続きテストすることができます。

JCL 文

このセクションでは、MFJBR14 ユーティリティーで使用される JCL 文について説明します。

EXEC 文

EXEC 文では、プログラム名の MFJBR14、あるいはそれのエイリアスである IEFBR14 を指定する必要があります。その例を次に示します。

//STEPEXEC PGM=IEFBR14,......

バッチ・モードでの TSO コマンドの実行 (IDAEFT01)

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 のいずれかで行うことができます。

操作方法...

JCL 文

このセクションでは、IDAEFT01 ユーティリティーで使用される JCL 文について説明します。

EXEC 文

EXEC 文では、プログラム名の IDAEFT01、あるいはそれのエイリアスである IKJEFT01 を指定する必要があります。その例を次に示します。

//STEPEXEC PGM=IKJEFT01,PARM='initial-command',.......
DD 文

次の DD 文は必須です。

また、アプリケーション・プログラムによってアクセスされる順次および VSAM データ・セットに対する任意の DD 文を含めることもできます。

MVS バッチ・モードでの REXX Exec の実行 (MFIRXJCL)

MFIRXJCL は、IRXJCL メインフレーム・ユーティリティー・プログラムをエミュレートします。MFIRXJCL はバッチ・モードで MVS セッションを開始し、PARM パラメータで指定された REXX exec を実行します。MSS における REXX サポートの詳細については、REXX サポートの章を参照してください。

JCL 文

このセクションでは、MFIRXJCL ユーティリティーで使用される JCL 文について説明します。

EXEC 文

EXEC 文では、プログラム名の MFIRXJCL、またはそのエイリアスである IRXJCLを指定し、REXX exec の名前を PARM パラメータの最初のワードとして指定する必要があります。その例を次に示します。

//STEPEXEC PGM=IRXJCL,PARM='REXXEXEC'
DD 文

場合によっては、次の DD 文が必要になります。

また、exec によってアクセスされるデータ・セットに対する DD 文もすべて含める必要があります。

テスト・データの生成 (MFJDG)

MFJDG は、テスト・データの作成について IEBDG メインフレーム・ユーティリティーをエミュレートします。

JCL 文

このセクションでは、MFJDG ユーティリティーで使用される JCL 文について説明します。

EXEC 文

EXEC 文では、プログラム名の MFJDG または IEBDG を指定する必要があります。その例を次に示します。

//STEPEXEC PGM=IEBDG, ...

exec 文の PARM はすべて無視されます。

DD 文

次の DD 文は必須です。

制御文

次のサブオペランドは解析されますが、処理されません。

Micro Focus ユーティリティー

このセクションでは、Micro Focus ユーティリティーの MFJMATCH について説明します。

データ・セットの比較 (MFJMATCH)

MFJMATCH ユーティリティーは、2 つの MVS データ・セットを比較します。このユーティリティーでは、ユーザーの COBOL 開発システム によってサポートされる任意のレコード・フォーマット、レコード長、またはデータ・セット編成が許容されます。データ・セットが一致した場合、MFJMATCH ユーティリティーは 0 の戻りコードで終了します。2 つのデータ・セットが一致しない場合、MFJMATCH ユーティリティーは、最初の不一致を検出すると、異なる 2 つのレコードを第 3 のデータ・セットに書き込んでから (異なるカラムの下にアスタリスクが付く)、12 の戻りコードで終了します。最初の不一致の後に続くレコードは比較されません。

注:

MFJMATCH ユーティリティーを使用して、IEBCOMPR メインフレーム・ユーティリティーをエミュレートすることもできます。この操作については、データ・セットの比較 (MFJMATCH - IEBCOMPR) を参照してください。

比較されるデータ・セットが EBCDIC の場合、MFJMATCH ユーティリティーは 16 進表現も書き込みます。

JCL 文

このセクションでは、MFJMATCH ユーティリティーで使用される JCL 文について説明します。

EXEC 文

EXEC 文では、プログラム名の MFJMATCH を指定する必要があります。その例を次に示します。

//STEPEXEC PGM=MFJMATCH
DD 文

次の DD 文は必須です。

プログラム制御文

MFJMATCH によってサポートされるプログラム制御文を次に示します。プログラム制御文では、特定のレコード範囲とレコードの一部に照合を限定する検索条件が定義されます。

プログラム制御文 説明
KEY=(start,length) FROMKEY および TOKEY プログラム制御文によって使用されるキー・フィールドを定義します。この文は一つだけ書くことができます。パラメータは次のとおりです。
start キーが始まるレコード内の位置
length キーの長さ

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 開発システムでユーティリティー・プログラムをコンパイルする必要があります。