VSAM - Komutlar

VSAM komutları, VSAM veri kümelerinde belirli işlemleri gerçekleştirmek için kullanılır. Aşağıdakiler en kullanışlı VSAM komutlarıdır -

  • Alter
  • Repro
  • Listcat
  • Examine
  • Verify

Değiştir

ALTER komutu, VSAM dosya özniteliklerini değiştirmek için kullanılır. VSAM Küme tanımında bahsettiğimiz VSAM dosyasının özniteliklerini değiştirebiliriz. Öznitelikleri değiştirmek için sözdizimi aşağıdadır -

ALTER  file-cluster-name [password] 
   [ADDVOLUMES(volume-serial)] 
   [BUFFERSPACE(size)] 
   [EMPTY / NOEMPTY] 
   [ERASE / NOERASE] 
   [FREESPACE(CI-percentage CA-percentage)] 
   [KEYS(length offset)] 
   [NEWNAME(new-name)] 
   [RECORDSIZE(average maximum)] 
   [REMOVEVOLUMES(volume-serial)] 
   [SCRATCH / NOSCRATCH] 
   [TO(date) / FOR(days)] 
   [UPGRADE / NOUPGRADE] 
   [CATALOG(catalog-name [password]]

Yukarıdaki sözdizimi, mevcut bir VSAM kümesinde hangi parametreleri değiştirebileceğimizi gösterir. Parametre açıklaması VSAM - Küme modülünde belirtilenle aynı kalır.

Misal

Aşağıdaki örnek, Serbest Alanı artırmak, daha fazla hacim eklemek ve Anahtarları Değiştirmek için ALTER komutunun nasıl kullanılacağını gösterir -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   ALTER  MY.VSAM.KSDSFILE 
   [ADDVOLUMES(2)] 
   [FREESPACE(6 6)] 
   [KEYS(10 2)] 
/*

Yukarıdaki JCL'yi Mainframes sunucusunda çalıştıracaksanız. MAXCC = 0 ile çalıştırılmalı ve Serbest Alan, Hacim ve Anahtarları değiştirecektir.

Repro

REPRO komutu, verileri VSAM veri kümesine yüklemek için kullanılır. Ayrıca bir VSAM veri kümesinden diğerine veri kopyalamak için de kullanılır. Sıralı dosyadan VSAM dosyasına veri kopyalamak için bu komutu kullanabiliriz. IDCAMS yardımcı programı, veri kümelerini yüklemek için REPRO komutunu kullanır.

REPRO INFILE(in-ddname) 
   OUTFILE(out-ddname)

Yukarıdaki sözdiziminde, ddname, kayıtlara sahip olan Giriş Veri Kümesi için DD adıdır. Dış gg adı, girdi veri kümesi kayıtlarının kopyalanacağı Çıktı Veri Kümesi için DD adıdır.

Misal

Aşağıdaki örnek, kayıtların bir veri kümesinden başka bir VSAM veri kümesine nasıl kopyalanacağını gösterir -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//IN  DD DSN = MY.VSAM.KSDSFILE,DISP = SHR
//OUT DD DSN = MY.VSAM1.KSDSFILE,DISP = SHR
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   REPRO INFILE(IN) 
      OUTFILE(OUT)
/*

Yukarıdaki JCL'yi Mainframes sunucusunda çalıştıracaksanız. MAXCC = 0 ile çalışmalı ve MY.VSAM.KSDSFILE'daki tüm kayıtları MY.VSAM1.KSDSFILE VSAM dosyasına kopyalayacaktır.

Listcat

LISTCAT komutu, bir VSAM veri kümesinin katalog ayrıntılarını almak için kullanılır. Listcat komutu, VSAM veri kümeleri hakkında aşağıdaki bilgileri sağlar -

  • SMS Bilgileri
  • RLS Bilgileri
  • Hacim Bilgileri
  • Küre Bilgileri
  • Tahsis Bilgileri
  • Veri Kümesi Özellikleri
LISTCAT ENTRY(vsam-file-name) ALL

Yukarıdaki sözdiziminde, vsam-dosya-adı, tüm bilgilere ihtiyacımız olan VSAM veri kümesi adıdır. Tüm katalog detaylarını almak için ALL anahtar sözcüğü belirtilmiştir.

Misal

Aşağıdaki örnek, bir VSAM veri kümesi için Listcat komutunu kullanarak tüm ayrıntıların nasıl getirileceğini gösterir -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   LISTCAT ENTRY(MY.VSAM.KSDSFILE) 
   ALL 
/*

Yukarıdaki JCL'yi Mainframes sunucusunda çalıştıracaksanız. MAXCC = 0 ile çalışmalı ve MY.VSAM.KSDSFILE veri setiyle ilgili tüm katalog detaylarını gösterecektir.

Muayene etmek

İncele komutu, anahtar sıralı bir veri kümesi kümesinin yapısal bütünlüğünü kontrol etmek için kullanılır. İndeks ve veri bileşenlerini kontrol eder ve herhangi bir sorun bulunursa hata mesajları biriktirme olarak gönderilir. IDCxxxxx mesajlarından herhangi birini kontrol edebilirsiniz.

EXAMINE NAME(vsam-ksds-name) -                                    
   INDEXTEST DATATEST -                  
   ERRORLIMIT(50)

Yukarıdaki sözdiziminde, vsam-ksds-adı, VSAM kümesinin dizin ve veri bölümünü incelememiz gereken VSAM veri kümesi adıdır.

Misal

Aşağıdaki örnek, KSDS veri kümesinin Dizin ve Veri bölümlerinin senkronize edilip edilmediğinin nasıl kontrol edileceğini gösterir -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   EXAMINE NAME(MY.VSAM.KSDSFILE) -                                    
   INDEXTEST DATATEST -                  
   ERRORLIMIT(50)
/*

Yukarıdaki JCL'yi Mainframes sunucusunda çalıştıracaksanız. MAXCC = 0 ile yürütülmelidir ve biriktirmedeki IDCxxxxx mesajlarından birinde VSAM veri kümesiyle ilgili tüm sorunları gösterecektir.

Doğrulayın

Doğrulama komutu, bir hatadan sonra düzgün şekilde kapatılmayan VSAM dosyalarını kontrol etmek ve düzeltmek için kullanılır. Komut, dosyaya doğru Veri Sonu kayıtlarını ekler.

VERIFY DS(vsam-file-name)

Yukarıdaki sözdiziminde, vsam-file-name, hataları kontrol etmemiz gereken VSAM veri kümesi adıdır.

Misal

Aşağıdaki örnek, VSAM veri kümesindeki hataların nasıl kontrol edilip düzeltileceğini gösterir -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN DD  *
   VERIFY DS(MY.VSAM.KSDSFILE)                                  
/*

Yukarıdaki JCL'yi Mainframes sunucusunda çalıştıracaksanız. MAXCC = 0 ile çalışmalı ve VSAM veri kümesindeki hataları düzeltir.