Job Control Language (JCL), IBM ana bilgisayarlarında, özellikle de z/OS işletim sisteminde, işleri (jobs) tanımlamak ve çalıştırmak için kullanılan bir betik dilidir. JCL, bir programın hangi kaynaklara ihtiyaç duyduğunu, nasıl çalıştırılacağını ve çıktıların nereye gönderileceğini belirtir. Basitçe söylemek gerekirse, JCL, ana bilgisayara bir işin nasıl yapılacağını anlatan bir dizi talimattır.
JCL'nin kökleri, System/360 ana bilgisayarlarının geliştirildiği 1960'lara dayanmaktadır. O zamandan beri, donanım ve yazılım teknolojilerindeki gelişmelere paralel olarak evrimleşmiştir. İlk JCL versiyonları oldukça basitti, ancak zamanla daha karmaşık iş akışlarını ve kaynak yönetimini desteklemek için önemli ölçüde genişletilmiştir. Bugün, JCL, birçok büyük kuruluş için kritik öneme sahip iş yüklerini yönetmek için hala yaygın olarak kullanılmaktadır.
JCL, temel olarak üç ana tür deyimden (statement) oluşur:
JOB Deyimi: Bir işin başlangıcını tanımlar ve işe ait temel bilgileri içerir (iş adı, hesap numarası vb.). Her JCL betiği bir JOB deyimi ile başlamalıdır.
EXEC Deyimi: Bir programın (program, prosedür veya yardımcı program) çalıştırılmasını başlatır. EXEC deyimi, çalıştırılacak programın adını ve bu programın ihtiyaç duyduğu parametreleri belirtir.
DD Deyimi (Data Definition): Bir veri kümesini (dataset) tanımlar ve bu veri kümesinin nerede bulunduğunu, nasıl kullanılacağını (giriş, çıktı vb.) ve hangi özelliklere sahip olduğunu belirtir. DD deyimleri, programların ihtiyaç duyduğu dosyalara ve diğer kaynaklara erişmesini sağlar.
Tipik bir JCL betiği aşağıdaki gibi bir yapıya sahiptir:
//JOBADI JOB (HESAPNO,OPERATOR),'ACIKLAMA'
//* YORUM SATIRI
//ADIM1 EXEC PGM=PROGRAMADI,PARM='PARAMETRELER'
//DD1 DD DSN=VERIKUMESI.ADI,DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,SPACE=(TRK,(10,5),RLSE)
//DD2 DD SYSOUT=*
//ADIM2 EXEC PGM=BASKAPROGRAM, ...
//
: JCL deyiminin başlangıcını gösterir.JOBADI
: İşin adıdır. (8 karakterle sınırlıdır ve alfanümerik olmalıdır).JOB
: JCL'nin bir JOB deyimi olduğunu belirtir.(HESAPNO,OPERATOR)
: Hesap bilgilerini ve operatör bilgini içerir.'ACIKLAMA'
: İsteğe bağlı bir açıklamadır.//*
: Yorum satırıdır. JCL tarafından işlenmez.ADIM1
, ADIM2
: Adım adlarıdır. Her EXEC deyimi bir adım adıyla ilişkilendirilir.EXEC
: JCL'nin bir EXEC deyimi olduğunu belirtir.PGM=PROGRAMADI
: Çalıştırılacak programın adıdır.PARM='PARAMETRELER'
: Programa geçirilecek parametrelerdir.DD1
, DD2
: Veri kümesi tanımlayıcı adlarıdır.DD
: JCL'nin bir DD deyimi olduğunu belirtir.DSN=VERIKUMESI.ADI
: Veri kümesinin adıdır.DISP=(NEW,CATLG,DELETE)
: Veri kümesinin durumunu ve işlem sonrası davranışını belirtir.UNIT=SYSDA
: Veri kümesinin depolanacağı cihaz türünü belirtir.SPACE=(TRK,(10,5),RLSE)
: Veri kümesine ayrılacak alanı belirtir.SYSOUT=*
: Çıktının yazıcıya gönderileceğini belirtir.JCL, ana bilgisayar ortamında çok çeşitli görevleri otomatikleştirmek için kullanılır:
Aşağıdaki örnek, basit bir JCL betiğinin nasıl görünebileceğini göstermektedir:
//MIJOB JOB (123456,ABC),'ORNEK JCL ISLEMI'
//* BU BIR YORUM SATIRIDIR
//STEP1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=ORNEK.GIRIS.VERISI,DISP=SHR
//SYSUT2 DD DSN=ORNEK.CIKIS.VERISI,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(10,5),RLSE)
//SYSIN DD DUMMY
Bu JCL betiği, IEBGENER
adlı bir IBM yardımcı programını çalıştırır. IEBGENER
, bir veri kümesini başka bir veri kümesine kopyalamak için kullanılan bir programdır. Bu örnekte, ORNEK.GIRIS.VERISI
adlı veri kümesi, ORNEK.CIKIS.VERISI
adlı yeni bir veri kümesine kopyalanır.
JCL yazımını ve düzenlenmesini kolaylaştırmak için çeşitli JCL editörleri ve araçları mevcuttur. Bu araçlar genellikle sözdizimi vurgulama, hata kontrolü ve otomatik tamamlama gibi özellikler sunar. Bazı popüler JCL editörleri ve araçları şunlardır:
Job Control Language (JCL), IBM ana bilgisayar ortamında işleri tanımlamak ve çalıştırmak için kritik bir araçtır. Karmaşık sözdizimi ve zorluklarına rağmen, JCL, büyük kuruluşların karmaşık iş yüklerini yönetmelerine ve otomatikleştirmelerine olanak tanır. Ana bilgisayar teknolojisi gelişmeye devam ettikçe, JCL de evrimleşmeye ve günümüzün iş ihtiyaçlarını karşılamaya devam edecektir.