JCL-DDステートメント
データセットは、特定の形式で編成されたレコードを持つメインフレームファイルです。データセットは、メインフレームの直接アクセス記憶装置(DASD)またはテープに保存され、基本的なデータ保存領域です。これらのデータをバッチプログラムで使用/作成する必要がある場合は、ファイル(つまり、データセット)の物理名と、ファイル形式および編成がJCLでコード化されます。
JCLで使用される各データセットの定義は、 DD statement。ジョブステップに必要な入力リソースと出力リソースは、データセットの編成、ストレージ要件、レコード長などの情報とともにDDステートメント内に記述する必要があります。
構文
以下は、JCLDDステートメントの基本構文です。
//DD-name DD Parameters
説明
上記のDDステートメント構文で使用されている用語の説明を見てみましょう。
DD-NAME
DD-NAMEは、データセットまたは入出力リソースを識別します。これがCOBOL /アセンブラプログラムによって使用される入出力ファイルである場合、ファイルはプログラム内でこの名前で参照されます。
DD
これは、DDステートメントとして識別するためのキーワードです。
パラメーター
以下は、DDステートメントのさまざまなパラメーターです。要件に基づいて1つ以上のパラメーターを使用でき、それらはコンマで区切られます。
パラメータ | 説明 |
---|---|
DSN | DSNパラメーターは、新しく作成されたデータセットまたは既存のデータセットの物理データセット名を参照します。DSN値は、ピリオドで区切られた1〜8文字の長さで、全長が44文字(英数字)のサブ名で構成できます。構文は次のとおりです。 DSN=Physical Dataset Name Temporary datasetsジョブ期間中のみストレージが必要であり、ジョブの完了時に削除されます。このようなデータセットは、次のように表されます。DSN=&name または単にDSNを指定せずに。 ジョブステップによって作成された一時データセットを次のジョブステップで使用する場合は、次のように参照されます。 DSN=*.stepname.ddname。これは Backward Referencing. |
DISP | DISPパラメーターは、データセットのステータス、正常および異常な完了時のジョブステップの終了時の処理を記述するために使用されます。データセットが同じジョブステップ(一時データセットなど)で作成および削除される場合にのみ、DDステートメントでDISPは必要ありません。構文は次のとおりです。 DISP=(status, normal-disposition, abnormal-disposition) 以下はの有効な値です status:
A normal-disposition パラメータは次のいずれかの値を取ることができます
A abnormal-disposition パラメータは次のいずれかの値を取ることができます
CATLG、UNCATLG、DELETE、PASS、およびKEEPパラメーターの説明は次のとおりです。
DISPのサブパラメータのいずれかが指定されていない場合、デフォルト値は次のとおりです。
|
DCB | データ制御ブロック(DCB)パラメーターは、データセットの物理的特性を詳しく説明します。このパラメーターは、ジョブステップで新しく作成されたデータセットに必要です。 LRECLは、データセット内に保持されている各レコードの長さです。 RECFMは、データセットのレコード形式です。RECFMは、値FB、V、またはVBを保持できます。FBは、1つ以上の論理レコードが単一のブロック内にグループ化されている固定ブロック編成です。Vは、1つの可変長論理レコードが1つの物理ブロック内に配置される可変編成です。VBは、1つ以上の可変長論理レコードが1つの物理ブロック内に配置される可変ブロック編成です。 BLKSIZEは、物理ブロックのサイズです。ブロックが大きいほど、FBまたはVBファイルのレコード数が多くなります。 DSORGは、データセット組織のタイプです。DSORGは、PS(Physical Sequential)、PO(Partitioned Organisation)、およびDA(Direct Organisation)の値を保持できます。 同じジョブステップまたはJCL内で1つのデータセットのDCB値を別のデータセットに複製する必要がある場合、DCB = *。stepname.ddnameとして指定されます。ここで、stepnameはジョブステップの名前であり、ddnameは元のデータセットです。 DCBがコピーされます。 RECFM = FB、LRECL = 80がデータセットOUTPUT1のDCBを形成する以下の例を確認してください。 |
SPACE | SPACEパラメーターは、DASD(直接アクセス記憶ディスク)のデータセットに必要なスペースを指定します。構文は次のとおりです。 SPACE=(spcunits, (pri, sec, dir), RLSE) 使用されるすべてのパラメーターの説明は次のとおりです。
|
UNIT | UNITおよびVOLパラメーターは、カタログ化されたデータセットのシステムカタログにリストされているため、物理DSN名だけでアクセスできます。ただし、カタログ化されていないデータセットの場合、DDステートメントにはこれらのパラメーターを含める必要があります。新しいデータセットを作成するには、UNIT / VOLパラメーターを指定するか、Z / OSが適切なデバイスとボリュームを割り当てます。 UNITパラメーターは、データセットが保管されているデバイスのタイプを指定します。デバイスタイプは、ハードウェアアドレスまたはデバイスタイプグループを使用して識別できます。構文は次のとおりです。 UNIT=DASD | SYSDA ここで、DASDはDirect Access Storage Deviceを表し、SYSDAはSystem Direct Accessを表し、次に使用可能なディスクストレージデバイスを指します。 |
VOL | VOLパラメーターは、UNITパラメーターによって識別されるデバイスのボリューム番号を指定します。構文は次のとおりです。 VOL=SER=(v1,v2) ここで、v1、v2はボリュームのシリアル番号です。次の構文も使用できます。 VOL=REF=*.DDNAME ここで、REFは、JCLの前述のジョブステップのいずれかにおけるデータセットのボリュームシリアル番号への後方参照です。 |
SYSOUT | これまでに説明したDDステートメントのパラメーターは、データセットに格納されているデータに対応しています。SYSOUTパラメーターは、指定されたクラスに基づいてデータを出力デバイスに送信します。以下は構文です SYSOUT=class クラスがAの場合は出力をプリンタに送信し、クラスが * 次に、JOBステートメントのMSGCLASSパラメーターと同じ宛先に出力を送信します。 |
例
以下は、上記で説明したさまざまなパラメーターとともにDDステートメントを使用する例です。
//TTYYSAMP JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K,
// NOTIFY=&SYSUID
//*
//STEP010 EXEC PGM=ICETOOL,ADDRSPC=REAL
//*
//INPUT1 DD DSN=TUTO.SORT.INPUT1,DISP=SHR
//INPUT2 DD DSN=TUTO.SORT.INPUT2,DISP=SHR,UNIT=SYSDA,
// VOL=SER=(1243,1244)
//OUTPUT1 DD DSN=MYFILES.SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
// RECFM=FB,LRECL=80,SPACE=(CYL,(10,20))
//OUTPUT2 DD SYSOUT=*