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:

  • NEW: Dataset baru dibuat oleh langkah pekerjaan. OUTPUT1 pada contoh di atas.

  • OLD: Dataset sudah dibuat dan akan ditimpa pada langkah pekerjaan. Langkah pekerjaan mendapatkan akses eksklusif pada kumpulan data dan tidak ada pekerjaan lain yang dapat mengakses kumpulan data ini hingga langkah pekerjaan selesai.

  • SHR: Dataset sudah dibuat dan akan dibaca di langkah pekerjaan. Dataset dapat dibaca oleh banyak pekerjaan pada saat yang bersamaan. Contoh: INPUT1 dan INPUT2.

  • MOD: Dataset sudah dibuat. Disposisi ini akan digunakan ketika ada kebutuhan untuk menambahkan catatan baru ke kumpulan data yang ada (catatan yang ada tidak akan ditimpa).

SEBUAH normal-disposition parameter dapat mengambil salah satu nilai berikut

  • CATLG, UNCATLG, DELETE, PASS dan KEEP

SEBUAH abnormal-disposition parameter dapat mengambil salah satu nilai berikut

  • CATLG, UNCATLG, DELETE dan KEEP

Berikut adalah deskripsi parameter CATLG, UNCATLG, DELETE, PASS dan KEEP:

  • CATLG : Dataset dipertahankan dengan entri di katalog sistem.

  • UNCATLG : Dataset dipertahankan tetapi entri katalog sistem dihapus.

  • KEEP: Dataset dipertahankan tanpa mengubah entri katalog apa pun. KEEP adalah satu-satunya disposisi yang valid untuk file VSAM. Ini hanya akan digunakan untuk kumpulan data permanen.

  • DELETE : Set data dihapus dari katalog pengguna dan sistem.

  • PASS: Ini hanya berlaku untuk disposisi normal. Ini digunakan ketika kumpulan data akan diteruskan dan diproses oleh langkah pekerjaan berikutnya di JCL

Ketika salah satu sub-parameter DISP tidak ditentukan, nilai defaultnya adalah sebagai berikut:

  • status : BARU adalah nilai default.

  • normal-disposition : Jika statusnya BARU, disposisi normal default adalah HAPUS, jika tidak maka TETAP.

  • abnormal-disposition : Sama seperti disposisi normal.

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:

  • spcunits : Ini bisa menjadi salah satu CYL (Cylinder), TRK (Tracks) atau BLKSIZE (Block Size).

  • pri : Ini adalah ruang utama yang diperlukan untuk kumpulan data.

  • sec : Ini adalah ruang tambahan yang diperlukan, jika ruang utama tidak mencukupi.

  • ir : Ini adalah blok direktori yang diperlukan, jika datasetnya adalah PDS (Partitioned Dataset) dengan anggota di dalamnya.

  • RLSE : Ini digunakan untuk melepaskan ruang yang tidak digunakan saat pekerjaan selesai.

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=*