JCL - Pernyataan DD
Set data adalah file mainframe dengan catatan yang diatur dalam format tertentu. Set data disimpan di Direct Access Storage Device (DASD) atau Tapes dari mainframe dan merupakan area penyimpanan data dasar. Jika data ini diperlukan untuk digunakan / dibuat dalam program batch, maka nama fisik file (mis., Dataset) bersama dengan format file dan organisasinya dikodekan dalam JCL.
Definisi dari setiap dataset yang digunakan di JCL diberikan menggunakan DD statement. Sumber daya input dan output yang diperlukan oleh langkah pekerjaan perlu dijelaskan dalam pernyataan DD dengan informasi seperti organisasi set data, persyaratan penyimpanan, dan panjang rekaman.
Sintaksis
Berikut ini adalah sintaks dasar dari pernyataan DD JCL:
//DD-name DD Parameters
Deskripsi
Mari kita lihat deskripsi istilah yang digunakan dalam sintaks pernyataan DD di atas.
DD-NAME
DD-NAME mengidentifikasi kumpulan data atau sumber daya masukan / keluaran. Jika ini adalah file input / output yang digunakan oleh program COBOL / Assembler, maka file tersebut direferensikan dengan nama ini di dalam program.
DD
Ini adalah kata kunci untuk mengidentifikasinya sebagai pernyataan DD.
PARAMETER
Berikut adalah berbagai parameter untuk pernyataan DD. Anda dapat menggunakan satu atau lebih parameter berdasarkan persyaratan dan dipisahkan dengan koma:
Parameter | Deskripsi |
---|---|
DSN | Parameter DSN mengacu pada nama dataset fisik dari dataset yang baru dibuat atau yang sudah ada. Nilai DSN dapat terdiri dari sub-nama yang masing-masing memiliki panjang 1 hingga 8 karakter, dipisahkan oleh titik dan dengan total panjang 44 karakter (alfanumerik). Berikut sintaksnya: DSN=Physical Dataset Name Temporary datasetsperlu penyimpanan hanya selama durasi pekerjaan dan dihapus saat pekerjaan selesai. Kumpulan data tersebut direpresentasikan sebagaiDSN=&name atau hanya tanpa DSN yang ditentukan. Jika kumpulan data sementara yang dibuat oleh langkah pekerjaan akan digunakan di langkah pekerjaan berikutnya, maka itu direferensikan sebagai DSN=*.stepname.ddname. Ini disebut Backward Referencing. |
DISP | Parameter DISP digunakan untuk mendeskripsikan status dataset, disposisi di akhir langkah pekerjaan pada penyelesaian normal dan abnormal. DISP tidak diperlukan dalam pernyataan DD hanya jika kumpulan data dibuat dan dihapus dalam langkah pekerjaan yang sama (seperti kumpulan data sementara). Berikut sintaksnya: DISP=(status, normal-disposition, abnormal-disposition) Berikut ini adalah nilai yang valid untuk status:
SEBUAH normal-disposition parameter dapat mengambil salah satu nilai berikut
SEBUAH abnormal-disposition parameter dapat mengambil salah satu nilai berikut
Berikut adalah deskripsi parameter CATLG, UNCATLG, DELETE, PASS dan KEEP:
Ketika salah satu sub-parameter DISP tidak ditentukan, nilai defaultnya adalah sebagai berikut:
|
DCB | Parameter Data Control Block (DCB) merinci karakteristik fisik dari sebuah dataset. Parameter ini diperlukan untuk set data yang baru dibuat di langkah pekerjaan. LRECL adalah panjang setiap record yang disimpan dalam dataset. RECFM adalah format record dari dataset. RECFM dapat menampung nilai FB, V atau VB. FB adalah organisasi blok tetap di mana satu atau lebih catatan logis dikelompokkan dalam satu blok. V adalah organisasi variabel di mana satu catatan logis dengan panjang variabel ditempatkan dalam satu blok fisik. VB adalah organisasi Blok Variabel di mana satu atau lebih catatan logis dengan panjang variabel ditempatkan dalam satu blok fisik. BLKSIZE adalah ukuran blok fisik. Semakin besar bloknya, semakin besar jumlah record untuk file FB atau VB. DSORG adalah jenis organisasi set data. DSORG dapat menyimpan nilai PS (Physical Sequential), PO (Partitioned Organization) dan DA (Direct Organization). Jika ada kebutuhan untuk mereplikasi nilai DCB dari satu set data ke set data lain dalam jobstep atau JCL yang sama, maka itu ditetapkan sebagai DCB = *. Stepname.ddname di mana stepname adalah nama langkah pekerjaan dan ddname adalah set data dari mana DCB disalin. Periksa contoh di bawah ini di mana RECFM = FB, LRECL = 80 membentuk DCB dari dataset OUTPUT1. |
SPACE | Parameter SPACE menentukan ruang yang diperlukan untuk dataset di DASD (Direct Access Storage Disk). Berikut sintaksnya: SPACE=(spcunits, (pri, sec, dir), RLSE) Berikut adalah deskripsi dari semua parameter yang digunakan:
|
UNIT | Parameter UNIT dan VOL terdaftar dalam katalog sistem untuk kumpulan data yang dikatalogkan dan karenanya dapat diakses hanya dengan nama DSN fisik. Tetapi untuk set data yang tidak dikatalogkan, pernyataan DD harus menyertakan parameter ini. Untuk kumpulan data baru yang akan dibuat, parameter UNIT / VOL dapat ditentukan atau Z / OS mengalokasikan perangkat dan volume yang sesuai. Parameter UNIT menentukan jenis perangkat tempat dataset disimpan. Jenis perangkat dapat diidentifikasi menggunakan Alamat Perangkat Keras atau grup Jenis perangkat. Berikut sintaksnya: UNIT=DASD | SYSDA Dimana DASD adalah singkatan dari Direct Access Storage Device dan SYSDA adalah singkatan dari System Direct Access dan mengacu pada perangkat penyimpanan disk yang tersedia berikutnya. |
VOL | Parameter VOL menentukan nomor volume pada perangkat yang diidentifikasi oleh parameter UNIT. Berikut sintaksnya: VOL=SER=(v1,v2) Di mana v1, v2 adalah nomor seri volume. Anda juga dapat menggunakan sintaks berikut: VOL=REF=*.DDNAME Di mana REF adalah referensi mundur ke nomor seri volume set data di salah satu langkah pekerjaan sebelumnya di JCL. |
SYSOUT | Parameter pernyataan DD yang dibahas sejauh ini sesuai dengan data yang disimpan dalam kumpulan data. Parameter SYSOUT mengarahkan data ke perangkat keluaran berdasarkan kelas yang ditentukan. Berikut adalah sintaksnya SYSOUT=class Dimana jika kelasnya A maka itu mengarahkan output ke printer, dan jika kelasnya adalah * kemudian mengarahkan output ke tujuan yang sama seperti parameter MSGCLASS dalam pernyataan JOB. |
Contoh
Berikut adalah contoh, yang menggunakan pernyataan DD bersama dengan berbagai parameter yang dijelaskan di atas:
//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=*