JCL - Perpustakaan Dasar
Base Libraryadalah Partitioned Dataset (PDS), yang menampung modul beban program untuk dieksekusi di JCL atau prosedur katalog, yang disebut dalam program. Pustaka dasar dapat ditentukan untuk seluruh JCL di aJOBLIB perpustakaan atau untuk langkah pekerjaan tertentu di a STEPLIB pernyataan.
Pernyataan JOBLIB
SEBUAH JOBLIBpernyataan digunakan untuk mengidentifikasi lokasi program yang akan dijalankan di JCL. Pernyataan JOBLIB ditentukan setelah pernyataan JOB dan sebelum pernyataan EXEC. Ini hanya dapat digunakan untuk prosedur dan program dalam aliran.
Sintaksis
Berikut adalah sintaks dasar dari pernyataan JCL JOBLIB:
//JOBLIB DD DSN=dsnname,DISP=SHR
Pernyataan JOBLIB berlaku untuk semua pernyataan EXEC dalam JCL. Program yang ditentukan dalam pernyataan EXEC akan dicari di perpustakaan JOBLIB diikuti oleh perpustakaan sistem.
Misalnya, jika pernyataan EXEC menjalankan program COBOL, modul beban program COBOL harus ditempatkan di dalam perpustakaan JOBLIB.
Pernyataan STEPLIB
SEBUAH STEPLIBpernyataan digunakan untuk mengidentifikasi lokasi program yang akan dijalankan dalam Langkah Pekerjaan. Pernyataan STEPLIB ditentukan setelah pernyataan EXEC dan sebelum pernyataan DD dari langkah pekerjaan.
Sintaksis
Berikut ini adalah sintaks dasar dari pernyataan JCL STEPLIB:
//STEPLIB DD DSN=dsnname,DISP=SHR
Program yang ditentukan dalam pernyataan EXEC akan dicari di perpustakaan STEPLIB diikuti oleh perpustakaan sistem. Kode STEPLIB dalam langkah pekerjaan menggantikan pernyataan JOBLIB.
Contoh
Contoh berikut menunjukkan penggunaan pernyataan JOBLIB dan STEPLIB:
//MYJCL JOB ,,CLASS=6,NOTIFY=&SYSUID
//*
//JOBLIB DD DSN=MYPROC.BASE.LIB1,DISP=SHR
//*
//STEP1 EXEC PGM=MYPROG1
//INPUT1 DD DSN=MYFILE.SAMPLE.INPUT1,DISP=SHR
//OUTPUT1 DD DSN=MYFILES.SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
// RECFM=FB,LRECL=80
//*
//STEP2 EXEC PGM=MYPROG2
//STEPLIB DD DSN=MYPROC.BASE.LIB2,DISP=SHR
//INPUT2 DD DSN=MYFILE.SAMPLE.INPUT2,DISP=SHR
//OUTPUT2 DD DSN=MYFILES.SAMPLE.OUTPUT2,DISP=(,CATLG,DELETE),
// RECFM=FB,LRECL=80
Di sini, modul beban program MYPROG1 (di LANGKAH1) dicari di MYPROC.SAMPLE.LIB1. Jika tidak ditemukan, itu akan dicari di perpustakaan sistem. Di LANGKAH2, STEPLIB menggantikan JOBLIB dan memuat modul program MYPROG2 dicari di MYPROC.SAMPLE.LIB2 dan kemudian di perpustakaan sistem.
Pernyataan INCLUDE
Satu set pernyataan JCL yang dikodekan dalam anggota PDS dapat dimasukkan ke JCL menggunakan file INCLUDEpernyataan. Ketika JES menafsirkan JCL, kumpulan pernyataan JCL dalam anggota TERMASUK menggantikan pernyataan TERMASUK.
Sintaksis
Berikut ini adalah sintaks dasar dari pernyataan JCL INCLUDE:
//name INCLUDE MEMBER=member-name
Tujuan utama pernyataan INCLUDE adalah dapat digunakan kembali. Misalnya, file umum yang akan digunakan di banyak JCL dapat dikodekan sebagai pernyataan DD dalam anggota TERMASUK dan digunakan dalam JCL.
Pernyataan Dummy DD, spesifikasi kartu data, PROC, JOB, pernyataan PROC tidak dapat dikodekan dalam anggota TERMASUK. Pernyataan INLCUDE dapat dikodekan dalam anggota INCLUDE dan penumpukan selanjutnya dapat dilakukan hingga 15 level.
Pernyataan JCLLIB
SEBUAH JCLLIBpernyataan digunakan untuk mengidentifikasi perpustakaan pribadi yang digunakan dalam pekerjaan. Ini dapat digunakan baik dengan prosedur instream dan katalog.
Sintaksis
Berikut ini adalah sintaks dasar dari pernyataan JCL JCLLIB:
//name JCLLIB ORDER=(library1, library2....)
Perpustakaan yang ditentukan dalam pernyataan JCLLIB akan dicari dalam urutan tertentu untuk menemukan program, prosedur, dan anggota TERMASUK yang digunakan dalam pekerjaan. Hanya ada satu pernyataan JCLLIB di JCL; ditentukan setelah pernyataan JOB dan sebelum pernyataan EXEC dan INCLUDE tetapi tidak dapat dikodekan dalam anggota INCLUDE.
Contoh
Dalam contoh berikut, program MYPROG3 dan INCLUDE anggota MYINCL dicari dalam urutan MYPROC.BASE.LIB1, MYPROC.BASE.LIB2, pustaka sistem.
//MYJCL JOB ,,CLASS=6,NOTIFY=&SYSUID
//*
//MYLIB JCLLIB ORDER=(MYPROC.BASE.LIB1,MYPROC.BASE.LIB2)
//*
//STEP1 EXEC PGM=MYPROG3
//INC INCLUDE MEMBER=MYINCL
//OUTPUT1 DD DSN=MYFILES.SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
// RECFM=FB,LRECL=80
//*