VSAM - Panduan Cepat

Metode Akses Penyimpanan Virtual (VSAM) adalah metode akses kinerja tinggi dan organisasi kumpulan data, yang mengatur dan memelihara data melalui struktur katalog. Ini menggunakan konsep penyimpanan virtual dan dapat melindungi kumpulan data di berbagai tingkatan dengan memberikan kata sandi. VSAM dapat digunakan dalam program COBOL seperti file sekuensial fisik. VSAM adalah kumpulan data logis untuk menyimpan catatan. File dapat dibaca secara berurutan dan acak di VSAM. Ini adalah cara yang lebih baik untuk menyimpan data yang mengatasi beberapa keterbatasan sistem file konvensional seperti File Sekuensial.

Karakteristik VSAM

Berikut adalah karakteristik VSAM -

  • VSAM melindungi data dari akses tidak sah dengan menggunakan kata sandi.

  • VSAM menyediakan akses cepat ke kumpulan data.

  • VSAM memiliki opsi untuk mengoptimalkan kinerja.

  • VSAM memungkinkan berbagi kumpulan data dalam lingkungan batch dan online.

  • VSAM lebih terstruktur dan terorganisir dalam menyimpan data.

  • Ruang kosong digunakan kembali secara otomatis dalam file VSAM.

Batasan VSAM

Satu-satunya batasan VSAM adalah tidak dapat disimpan pada volume TAPE. Itu selalu disimpan di ruang DASD. Diperlukan sejumlah silinder untuk menyimpan data yang tidak hemat biaya.

VSAM terdiri dari komponen-komponen berikut -

  • Cluster VSAM
  • Area Kontrol
  • Interval Kontrol

Cluster VSAM

VSAM adalah kumpulan data logis untuk menyimpan catatan dan dikenal sebagai cluster. Cluster adalah asosiasi indeks, kumpulan urutan, dan bagian data dari kumpulan data. Ruang yang ditempati oleh cluster VSAM dibagi dalam area bersebelahan yang disebut Interval Kontrol. Kita akan membahas tentang interval kontrol nanti di modul ini.

Ada dua komponen utama dalam cluster VSAM -

  • Index Componentberisi bagian indeks. Catatan indeks ada dalam komponen Indeks. Menggunakan komponen indeks, VSAM dapat mengambil catatan dari komponen data.

  • Data Componentberisi bagian data. Catatan data aktual ada di komponen Data.

Interval Kontrol

Interval Kontrol (CI) di VSAM setara dengan blok untuk kumpulan data non-VSAM. Dalam metode non-VSAM, unit data ditentukan oleh blok. VSAM bekerja dengan area data logis yang dikenal sebagai Interval Kontrol.

Interval Kontrol adalah unit transfer terkecil antara disk dan sistem operasi. Setiap kali record diambil langsung dari penyimpanan, seluruh CI yang berisi record dibaca ke buffer VSAM Input-Output. Record yang diinginkan kemudian ditransfer ke area kerja dari buffer VSAM.

Interval Kontrol terdiri dari -

  • Catatan Logis
  • Bidang informasi kontrol
  • Ruang bebas

Saat set data VSAM dimuat, interval kontrol dibuat. Ukuran Interval Kontrol default adalah 4K byte dan dapat diperpanjang hingga 32K byte.

Analisis Interval Kontrol

Berikut adalah deskripsi istilah yang digunakan dalam program di atas -

  • R1..R5 - Rekaman yang disimpan di Interval Kontrol.

  • FS - FS adalah ruang kosong, yang dapat digunakan untuk perluasan dataset lebih lanjut.

  • RDF- RDF dikenal sebagai Record Definition Fields. RDF panjangnya 3 byte. Ini menjelaskan panjang record dan memberitahu berapa banyak record yang berdekatan yang memiliki panjang yang sama.

  • CIDF- CIDF dikenal sebagai Control Interval Definition Fields. CIDF memiliki panjang 4 byte dan berisi informasi tentang Interval Kontrol.

Area Kontrol

Sebuah Area Kontrol (CA) dibentuk dengan menggabungkan dua atau lebih Interval Kontrol. Dataset VSAM terdiri dari satu atau lebih Area Kontrol. Ukuran VSAM selalu merupakan kelipatan dari Area Kontrolnya. File VSAM diperluas dalam unit Area Kontrol.

Berikut adalah contoh Area Kontrol -

Cluster VSAM didefinisikan di JCL. JCL menggunakanIDCAMSutilitas untuk membuat cluster. IDCAMS adalah utilitas, yang dikembangkan oleh IBM, untuk layanan metode akses. Ini digunakan terutama untuk mendefinisikan set data VSAM.

Mendefinisikan Cluster

Sintaks berikut menunjukkan parameter utama yang dikelompokkan di bawah Define Cluster, Data dan Index.

.DEFINE CLUSTER (NAME(vsam-file-name)      -
BLOCKS(number)                             -
VOLUMES(volume-serial)                     -
[INDEXED / NONINDEXED / NUMBERED / LINEAR] -
RECSZ(average maximum)                     -
[FREESPACE(CI-Percentage,CA-Percentage)]   -
CISZ(number)                               -
[KEYS(length offset)]                      -
[READPW(password)]                         -
[FOR(days)|TO(date)]                       -
[UPDATEPW(password)]                       -
[REUSE / NOREUSE] )                        -
DATA                                       -
   (NAME(vsam-file-name.data))             -
INDEX                                      -
   (NAME(vsam-file-name.index))            -
CATALOG(catalog-name[/password]))

Parameter di tingkat CLUSTER berlaku untuk seluruh cluster. Parameter di tingkat DATA atau INDEX hanya berlaku untuk data atau komponen indeks.

Kami akan membahas setiap parameter secara rinci pada tabel berikut -

Sr Tidak Parameter dengan Deskripsi
1

DEFINE CLUSTER

Perintah Define Cluster digunakan untuk mendefinisikan cluster dan menentukan atribut parameter untuk cluster dan komponennya.

2

NAME

NAME menentukan nama file VSAM yang klasternya kita definisikan.

3

BLOCKS

Blok menentukan jumlah blok yang ditetapkan untuk cluster.

4

VOLUMES

Volume menentukan satu atau lebih volume yang akan berisi cluster atau komponen.

5

INDEXED / NONINDEXED / NUMBERED / LINEAR

Parameter ini dapat mengambil tiga nilai INDEXED, NONINDEXED atau NUMBERED tergantung pada jenis dataset yang kita buat. Untuk file sekuens kunci (KSDS), opsi INDEXED digunakan. Untuk file urutan entri (ESDS), opsi NONINDEXED digunakan. Untuk file relative-record (RRDS), opsi ANGKA diperlukan. Untuk file Linear (LDS), diperlukan opsi LINEAR. Nilai default dari parameter ini adalah INDEXED. Kami akan membahas lebih lanjut tentang KSDS, ESDS, RRDS dan LDS di modul mendatang.

6

RECSZ

Parameter Record Size memiliki dua nilai yaitu Average dan Maximum Record Size. Rata-rata menentukan panjang rata-rata rekaman logis dalam file dan Maksimum menunjukkan panjang rekaman.

7

FREESPACE

Freespace menentukan persentase ruang kosong yang harus dipesan untuk interval kontrol (CI) dan area kontrol (CA) dari komponen data. Nilai default dari parameter ini adalah nol persen.

8

CISZ

CISZ dikenal sebagai ukuran interval kontrol. Ini menentukan ukuran interval kontrol.

9

KEYS

Parameter kunci ditentukan hanya dalam file sekuens kunci (KSDS). Ini menentukan panjang dan offset kunci utama dari kolom pertama. Kisaran nilai parameter ini dari 1 hingga 255 byte.

10

READPW

Nilai dalam parameter READPW menentukan kata sandi tingkat baca.

11

FOR/TO

Nilai parameter ini menentukan jumlah waktu dalam hal tanggal dan hari untuk menyimpan file. Nilai default untuk parameter ini adalah nol hari.

12

UPDATEPW

Nilai dalam parameter UPDATEPW menentukan kata sandi tingkat pembaruan.

13

REUSE / NOREUSE

Parameter REUSE memungkinkan cluster ditentukan yang dapat disetel ulang ke status kosong tanpa menghapus dan mendefinisikan ulang mereka.

14

DATA - NAME

Bagian DATA dari cluster berisi nama set data yang berisi data sebenarnya dari file tersebut.

15

INDEX-NAME

Bagian INDEX dari cluster berisi kunci utama dan penunjuk memori untuk rekaman terkait di bagian data. Ini ditentukan ketika cluster Key Sequenced digunakan.

16

CATALOG

Parameter katalog menunjukkan katalog tempat file akan ditentukan. Kami akan membahas tentang katalog secara terpisah di modul mendatang.

Contoh

Berikut adalah contoh dasar untuk menunjukkan bagaimana mendefinisikan cluster di JCL -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DEFINE CLUSTER (NAME(MY.VSAM.KSDSFILE)  -
   INDEXED                                 -
   RECSZ(80 80)                            -
   TRACKS(1,1)                             -
   KEYS(5  0)                              -
   CISZ(4096)                              -                            
   FREESPACE(3 3) )                        -
   DATA (NAME(MY.VSAM.KSDSFILE.DATA))      -
   INDEX (NAME(MY.VSAM.KSDSFILE.INDEX))
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan membuat file MY.VSAM.KSDSFILE VSAM.

Menghapus Cluster

Untuk menghapus file VSAM, cluster VSAM perlu dihapus menggunakan utilitas IDCAMS. Perintah DELETE menghapus masuknya cluster VSAM dari katalog dan secara opsional menghapus file, dengan demikian membebaskan ruang yang ditempati oleh objek. Jika kumpulan data VSAM tidak kedaluwarsa maka tidak akan dihapus. Untuk menghapus tipe dataset seperti itu, gunakan opsi PURGE.

DELETE data-set-name CLUSTER  
[ERASE / NOERASE] 
[FORCE / NOFORCE] 
[PURGE / NOPURGE] 
[SCRATCH / NOSCRATCH]

Sintaks di atas menunjukkan parameter yang dapat kita gunakan dengan pernyataan Hapus. Kami akan membahas masing-masing secara rinci dalam tabel berikut -

Sr Tidak Parameter dengan Deskripsi
1

ERASE / NOERASE

Opsi ERASE ditentukan untuk mengganti atribut ERASE yang ditentukan untuk objek dalam katalog. Opsi NOERASE diambil secara default.

2

FORCE / NOFORCE

Opsi FORCE ditentukan untuk menghapus SPACE dan USERCATALOG meskipun tidak kosong. Opsi NOFORCE diambil secara default.

3

PURGE / NOPURGE

Opsi PURGE digunakan untuk menghapus dataset VSAM jika dataset belum kadaluwarsa. Opsi NOPURGE diambil secara default.

4

SCRATCH / NOSCRATCH

Opsi SCRATCH ditentukan untuk menghapus entri terkait untuk objek dari Volume Table of Contents. Ini terutama digunakan untuk kumpulan data non-vsam seperti GDG. Opsi NOSCRATCH diambil secara default.

Contoh

Berikut adalah contoh dasar untuk menunjukkan cara menghapus cluster di JCL -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DELETE MY.VSAM.KSDSFILE CLUSTER
	PURGE
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan menghapus file MY.VSAM.KSDSFILE VSAM.

ESDS dikenal sebagai Kumpulan Data Urutan Entri. Kumpulan data urutan entri berperilaku seperti organisasi file berurutan dengan beberapa fitur lainnya disertakan. Kami dapat mengakses catatan secara langsung dan untuk tujuan keamanan kami juga dapat menggunakan kata sandi. Kita harus membuat kodeNONINDEXEDdi dalam perintah DEFINE CLUSTER untuk set data ESDS. Berikut adalah fitur utama ESDS -

  • Catatan di cluster ESDS disimpan dalam urutan saat mereka dimasukkan ke dalam dataset.

  • Catatan direferensikan oleh alamat fisik yang dikenal sebagai Relative Byte Address (RBA). Misalkan pada dataset ESDS kita memiliki record 80 byte, RBA record pertama adalah 0, RBA record kedua menjadi 80, record ketiga 160 dan seterusnya.

  • Rekaman dapat diakses secara berurutan oleh RBA yang dikenal sebagai addressed access.

  • Rekaman disimpan sesuai urutan penyisipannya. Catatan baru disisipkan di akhir.

  • Penghapusan catatan tidak dimungkinkan dalam set data ESDS. Tapi mereka bisa ditandai sebagai tidak aktif.

  • Rekaman dalam set data ESDS dapat memiliki panjang tetap atau panjang variabel.

  • ESDS tidak diindeks. Kunci tidak ada dalam set data ESDS, jadi mungkin berisi catatan duplikat.

  • ESDS dapat digunakan dalam program COBOL seperti file lainnya. Kami akan menentukan nama file di JCL dan kami dapat menggunakan file ESDS untuk memproses di dalam program. Dalam program COBOL tentukan organisasi file sebagaiSequential dan mode akses sebagai Sequential dengan set data ESDS.

Mendefinisikan cluster ESDS

Sintaks berikut menunjukkan parameter mana yang dapat kita gunakan saat membuat cluster ESDS. Deskripsi parameter tetap sama seperti yang disebutkan dalam VSAM - Modul cluster.

DEFINE CLUSTER (NAME(esds-file-name)     -
BLOCKS(number)                           -
VOLUMES(volume-serial)                   -
NONINDEXED                               -
RECSZ(average maximum)                   -
[FREESPACE(CI-Percentage,CA-Percentage)] -
CISZ(number)                             -
[READPW(password)]                       -
[FOR(days)|TO(date)]                     -
[UPDATEPW(password)]                     -
[REUSE / NOREUSE])                       -
DATA                                     -
   (NAME(esds-file-name.data))

Contoh

Contoh berikut menunjukkan cara membuat cluster ESDS di JCL menggunakan utilitas IDCAMS -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DEFINE CLUSTER (NAME(MY.VSAM.ESDSFILE)  -
   NONINDEXED                              -
   RECSZ(80 80)                            -
   TRACKS(1,1)                             -
   CISZ(4096)                              -                            
   FREESPACE(3 3) )                        -
   DATA (NAME(MY.VSAM.ESDSFILE.DATA))      
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan membuat file MY.VSAM.ESDSFILE VSAM.

Menghapus Kluster ESDS

Kluster ESDS dihapus menggunakan utilitas IDCAMS. Perintah DELETE menghapus masuknya cluster VSAM dari katalog dan secara opsional menghapus file, dengan demikian membebaskan ruang yang ditempati oleh objek.

DELETE data-set-name CLUSTER  
[ERASE / NOERASE] 
[FORCE / NOFORCE] 
[PURGE / NOPURGE] 
[SCRATCH / NOSCRATCH]

Sintaks di atas menunjukkan parameter mana yang dapat kita gunakan saat menghapus cluster ESDS. Deskripsi parameter tetap sama seperti yang disebutkan dalam VSAM - Modul cluster.

Contoh

Contoh berikut menunjukkan cara menghapus cluster ESDS di JCL menggunakan utilitas IDCAMS -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DELETE MY.VSAM.ESDSFILE CLUSTER
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan menghapus MY.VSAM.ESDSFILE VSAM Cluster.

KSDS dikenal sebagai Key Sequenced Data Set. Kumpulan data sekuens kunci (KSDS) lebih kompleks daripada ESDS dan RRDS tetapi lebih berguna dan serbaguna. Kita harus membuat kodeINDEXEDdi dalam perintah DEFINE CLUSTER untuk dataset KSDS. Cluster KSDS terdiri dari dua komponen berikut -

  • Index- Komponen indeks cluster KSDS berisi daftar nilai kunci untuk catatan di cluster dengan petunjuk ke catatan terkait di komponen data. Komponen indeks mengacu pada alamat fisik catatan KSDS. Ini menghubungkan kunci dari setiap record ke lokasi relatif record dalam kumpulan data. Ketika rekaman ditambahkan atau dihapus, indeks ini diperbarui sesuai dengan itu.

  • Data- Komponen data cluster KSDS berisi data aktual. Setiap record dalam komponen data cluster KSDS berisi field kunci dengan jumlah karakter yang sama dan terjadi dalam posisi relatif yang sama di setiap record.

Berikut adalah fitur utama KSDS -

  • Rekaman dalam kumpulan data KSDS selalu disimpan diurutkan berdasarkan bidang kunci. Rekaman disimpan dalam urutan menaik, menyusun urutan demi kunci.

  • Rekaman dapat diakses secara berurutan dan akses langsung juga dimungkinkan.

  • Rekaman diidentifikasi menggunakan kunci. Kunci dari setiap rekaman adalah bidang dalam posisi yang telah ditentukan sebelumnya dalam rekaman. Setiap kunci harus unik dalam set data KSDS. Jadi duplikasi catatan tidak mungkin dilakukan.

  • Saat rekaman baru dimasukkan, urutan logis dari rekaman tersebut bergantung pada urutan penyusunan bidang kunci.

  • Rekaman dalam dataset KSDS dapat memiliki panjang tetap atau panjang variabel.

  • KSDS dapat digunakan di COBOLprogram seperti file lainnya. Kami akan menentukan nama file di JCL dan kami dapat menggunakan file KSDS untuk memproses di dalam program. Dalam program COBOL tentukan organisasi file sebagaiIndexed dan Anda dapat menggunakan mode akses apa pun (Sequential, Random or Dynamic) dengan dataset KSDS.

Struktur File KSDS

Untuk mencari record tertentu, kami memberikan nilai kunci yang unik. Nilai kunci dicari di komponen indeks. Setelah kunci ditemukan alamat memori yang sesuai yang mengacu pada komponen data diambil. Dari alamat memori kita dapat mengambil data aktual yang disimpan dalam komponen data. Contoh berikut menunjukkan struktur dasar file index dan data -

Mendefinisikan Cluster KSDS

Sintaks berikut menunjukkan parameter mana yang dapat kita gunakan saat membuat cluster KSDS.

Deskripsi parameter tetap sama seperti yang disebutkan dalam VSAM - Modul cluster.

DEFINE CLUSTER (NAME(ksds-file-name)     -
BLOCKS(number)                           -
VOLUMES(volume-serial)                   -
INDEXED                                  -
KEYS(length offset)                      -
RECSZ(average maximum)                   -
[FREESPACE(CI-Percentage,CA-Percentage)] -
CISZ(number)                             -
[READPW(password)]                       -
[FOR(days)|TO(date)]                     -
[UPDATEPW(password)]                     -
[REUSE / NOREUSE])                       -
DATA                                     -
   (NAME(ksds-file-name.data))           -
INDEX                                    -
   (NAME(ksds-file-name.index))

Contoh

Contoh berikut menunjukkan cara membuat cluster KSDS di JCL menggunakan utilitas IDCAMS -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DEFINE CLUSTER (NAME(MY.VSAM.KSDSFILE)  -
   INDEXED                                 -
   KEYS(6 1)	                           -	
   RECSZ(80 80)                            -
   TRACKS(1,1)                             -
   CISZ(4096)                              -                            
   FREESPACE(3 3) )                        -
   DATA (NAME(MY.VSAM.KSDSFILE.DATA))      -
   INDEX (NAME(MY.VSAM.KSDSFILE.INDEX))    -
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan membuat file MY.VSAM.KSDSFILE VSAM.

Menghapus Cluster KSDS

Kluster KSDS dihapus menggunakan utilitas IDCAMS. Perintah DELETE menghapus masuknya cluster VSAM dari katalog dan secara opsional menghapus file, dengan demikian membebaskan ruang yang ditempati oleh objek.

DELETE data-set-name CLUSTER  
[ERASE / NOERASE] 
[FORCE / NOFORCE] 
[PURGE / NOPURGE] 
[SCRATCH / NOSCRATCH]

Sintaks di atas menunjukkan parameter mana yang dapat kita gunakan saat menghapus cluster KSDS. Deskripsi parameter tetap sama seperti yang disebutkan dalam VSAM - Modul cluster.

Contoh

Contoh berikut menunjukkan cara menghapus cluster KSDS di JCL menggunakan utilitas IDCAMS -

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

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan menghapus MY.VSAM.KSDSFILE VSAM Cluster.

RRDS dikenal sebagai Relative Record Data Set. RRDS cluster mirip dengan cluster ESDS. Satu-satunya perbedaan adalah bahwa catatan RRDS diakses olehRelative Record Number (RRN), kita harus membuat kode NUMBEREDdi dalam perintah DEFINE CLUSTER. Berikut adalah fitur utama dari RRDS -

  • Kumpulan data catatan relatif memiliki catatan yang diidentifikasi oleh Relative Record Number (RRN), yang merupakan nomor urut relatif terhadap record pertama.

  • RRDS memungkinkan akses record dengan nomor seperti record 1, record 2, dan seterusnya. Ini memberikan akses acak dan menganggap program aplikasi memiliki cara untuk mendapatkan nomor record yang diinginkan.

  • Catatan dalam set data RRDS dapat diakses secara berurutan, dalam urutan nomor catatan relatif, atau secara langsung, dengan memberikan nomor catatan relatif dari catatan yang diinginkan.

  • Catatan dalam set data RRDS disimpan dalam slot dengan panjang tetap. Setiap record direferensikan oleh jumlah slotnya, jumlahnya dapat bervariasi dari 1 hingga jumlah record maksimum dalam dataset.

  • Record dalam RRDS dapat ditulis dengan memasukkan record baru ke dalam slot kosong.

  • Rekaman dapat dihapus dari klaster RRDS, dengan demikian meninggalkan slot kosong.

  • Aplikasi yang menggunakan record dengan panjang tetap atau nomor record dengan arti kontekstual yang dapat menggunakan dataset RRDS.

  • RRDS dapat digunakan di COBOLprogram seperti file lainnya. Kami akan menentukan nama file di JCL dan kami dapat menggunakan file KSDS untuk memproses di dalam program. Dalam program COBOL tentukan organisasi file sebagaiRELATIVE dan Anda dapat menggunakan mode akses apa pun (Sequential, Random or Dynamic) dengan dataset RRDS.

Struktur File RRDS

Ruang dibagi menjadi slot panjang tetap dalam struktur file RRDS. Slot bisa benar-benar kosong atau penuh. Dengan demikian, catatan baru dapat ditambahkan ke slot kosong dan catatan yang ada dapat dihapus dari slot yang diisi. Kita bisa mengakses record apapun secara langsung dengan memberikan Relative Record Number. Contoh berikut menunjukkan struktur dasar file data -

Komponen Data

Nomor Catatan Relatif Rekam Field 1 Rekam Bidang 2
1 Tutorial Titik
2 Mohtashim M.
3 Nishant Malik

Mendefinisikan Cluster RRDS

Sintaks berikut menunjukkan parameter mana yang dapat kita gunakan saat membuat cluster RRDS.

Deskripsi parameter tetap sama seperti yang disebutkan dalam VSAM - Modul cluster.

DEFINE CLUSTER (NAME(rrds-file-name)     -
BLOCKS(number)                           -
VOLUMES(volume-serial)                   -
NUMBERED                                 -
RECSZ(average maximum)                   -
[FREESPACE(CI-Percentage,CA-Percentage)] -
CISZ(number)                             -
[READPW(password)]                       -
[FOR(days)|TO(date)]                     -
[UPDATEPW(password)]                     -
[REUSE / NOREUSE])                       -
DATA                                     -
   (NAME(rrds-file-name.data))

Contoh

Contoh berikut menunjukkan cara membuat cluster RRDS di JCL menggunakan utilitas IDCAMS -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DEFINE CLUSTER (NAME(MY.VSAM.RRDSFILE)  -
   NUMBERED                                -
   RECSZ(80 80)                            -
   TRACKS(1,1)                             -
   REUSE                                   - 
   FREESPACE(3 3) )                        -
   DATA (NAME(MY.VSAM.RRDSFILE.DATA))      
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan membuat file MY.VSAM.RRDSFILE VSAM.

Menghapus Cluster RRDS

RRDS cluster dihapus menggunakan utilitas IDCAMS. Perintah DELETE menghapus masuknya cluster VSAM dari katalog dan secara opsional menghapus file, dengan demikian membebaskan ruang yang ditempati oleh objek.

DELETE data-set-name CLUSTER  
[ERASE / NOERASE] 
[FORCE / NOFORCE] 
[PURGE / NOPURGE] 
[SCRATCH / NOSCRATCH]

Sintaks di atas menunjukkan parameter mana yang dapat kita gunakan saat menghapus cluster RRDS. Deskripsi parameter tetap sama seperti yang disebutkan dalam VSAM - Modul cluster.

Contoh

Contoh berikut menunjukkan cara menghapus cluster RRDS di JCL menggunakan utilitas IDCAMS -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DELETE MY.VSAM.RRDSFILE CLUSTER
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan menghapus MY.VSAM.RRDSFILE VSAM Cluster.

LDS dikenal sebagai Kumpulan Data Linier. Dataset linier adalah satu-satunya bentuk set data aliran byte yang digunakan dalam file sistem operasi tradisional. Set data linier jarang digunakan. Berikut adalah fitur utama LDS -

  • Set data linier tidak berisi RDF dan CIDF karena tidak memiliki informasi kontrol yang disematkan di CI-nya.

  • Data yang dapat diakses sebagai string beralamat byte dalam penyimpanan virtual dalam dataset Linear.

  • Set data linier memiliki ukuran interval kontrol 4KBytes.

  • LDS adalah sejenis file non-vsam dengan beberapa fasilitas VSAM seperti penggunaan informasi khusus IDCAMS dan VSAM di dalam katalog.

  • DB2 saat ini adalah pengguna terbesar Kumpulan Data Linear.

  • IDCAMS digunakan untuk mendefinisikan LDS tetapi diakses menggunakan makro Data-In-Virtual (DIV).

  • Dataset linier tidak memiliki konsep record. Semua byte LDS adalah byte data.

Mendefinisikan cluster LDS

Sintaks berikut menunjukkan parameter mana yang dapat kita gunakan saat membuat cluster LDS. Deskripsi parameter tetap sama seperti yang disebutkan dalam VSAM - Modul cluster.

DEFINE CLUSTER (NAME(lds-file-name)      -
BLOCKS(number)                           -
VOLUMES(volume-serial)                   -
LINEAR                                   -
CISZ(number)                             -
[READPW(password)]                       -
[FOR(days)|TO(date)]                     -
[UPDATEPW(password)]                     -
[REUSE / NOREUSE])                       -
DATA                                     -
   (NAME(lds-file-name.data))

Contoh

Contoh berikut menunjukkan cara membuat cluster LDS di JCL menggunakan utilitas IDCAMS -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DEFINE CLUSTER (NAME(MY.VSAM.LDSFILE)   -
   LINEAR                                  -
   TRACKS(1,1)                             -
   CISZ(4096) )                            -                            
   DATA (NAME(MY.VSAM.LDSFILE.DATA))      
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan membuat file MY.VSAM.LDSFILE VSAM.

Menghapus Cluster LDS

LDS cluster dihapus menggunakan utilitas IDCAMS. Perintah DELETE menghapus masuknya cluster VSAM dari katalog dan secara opsional menghapus file, dengan demikian membebaskan ruang yang ditempati oleh objek.

DELETE data-set-name CLUSTER  
[ERASE / NOERASE] 
[FORCE / NOFORCE] 
[PURGE / NOPURGE] 
[SCRATCH / NOSCRATCH]

Sintaks di atas menunjukkan parameter mana yang dapat kita gunakan saat menghapus cluster LDS. Deskripsi parameter tetap sama seperti yang disebutkan dalam VSAM - Modul cluster.

Contoh

Contoh berikut menunjukkan cara menghapus cluster LDS di JCL menggunakan utilitas IDCAMS -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DELETE MY.VSAM.LDSFILE CLUSTER
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan menghapus MY.VSAM.LDSFILE VSAM Cluster.

Perintah VSAM digunakan untuk melakukan operasi tertentu pada dataset VSAM. Berikut adalah perintah VSAM yang paling berguna -

  • Alter
  • Repro
  • Listcat
  • Examine
  • Verify

Mengubah

Perintah ALTER digunakan untuk mengubah atribut file VSAM. Kita dapat mengubah atribut file VSAM yang telah kita sebutkan dalam definisi Cluster VSAM. Berikut ini adalah sintaks untuk mengubah atribut -

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]]

Sintaks di atas menunjukkan parameter mana yang dapat kita ubah dalam cluster VSAM yang ada. Deskripsi parameter tetap sama seperti yang disebutkan dalam VSAM - Modul cluster.

Contoh

Contoh berikut menunjukkan bagaimana menggunakan perintah ALTER untuk meningkatkan Freespace, untuk menambahkan lebih banyak volume dan Alter Keys -

//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)] 
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan mengubah Freespace, Volume dan Kunci.

Repro

Perintah REPRO digunakan untuk memuat data ke dalam dataset VSAM. Ini juga digunakan untuk menyalin data dari satu kumpulan data VSAM ke kumpulan data lainnya. Kita dapat menggunakan perintah ini untuk menyalin data dari file sekuensial ke file VSAM. Utilitas IDCAMS menggunakan perintah REPRO untuk memuat kumpulan data.

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

Dalam sintaks di atas, in-ddname adalah nama DD untuk Input Dataset yang memiliki record. Out-ddname adalah nama DD untuk Output Dataset, tempat record dataset input akan disalin.

Contoh

Contoh berikut menunjukkan cara menyalin catatan dari satu set data ke set data VSAM lainnya -

//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)
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan menyalin semua catatan dari MY.VSAM.KSDSFILE ke file MY.VSAM1.KSDSFILE VSAM.

Listcat

Perintah LISTCAT digunakan untuk mendapatkan detail katalog dari dataset VSAM. Perintah Listcat memberikan informasi berikut tentang dataset VSAM -

  • Informasi SMS
  • Informasi RLS
  • Informasi Volume
  • Informasi Sphere
  • Informasi Alokasi
  • Atribut Kumpulan Data
LISTCAT ENTRY(vsam-file-name) ALL

Dalam sintaks di atas, vsam-file-name adalah nama dataset VSAM yang kita perlukan semua informasinya. SEMUA kata kunci ditentukan untuk mendapatkan semua detail katalog.

Contoh

Contoh berikut menunjukkan cara mengambil semua detail menggunakan perintah Listcat untuk kumpulan data VSAM -

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

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan menampilkan semua detail katalog tentang dataset MY.VSAM.KSDSFILE.

Memeriksa

Perintah Examine digunakan untuk memeriksa integritas struktural cluster kumpulan data berurutan kunci. Ia memeriksa indeks dan komponen data dan jika ada masalah yang ditemukan, pesan kesalahan dikirim spool. Anda dapat memeriksa salah satu pesan IDCxxxxx.

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

Dalam sintaks di atas, vsam-ksds-name adalah nama dataset VSAM yang mana kita perlu memeriksa indeks dan bagian data dari cluster VSAM.

Contoh

Contoh berikut menunjukkan bagaimana memeriksa apakah Indeks dan bagian Data dari dataset KSDS disinkronkan atau tidak -

//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)
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan menunjukkan semua masalah dengan kumpulan data VSAM di salah satu pesan IDCxxxxx di spool.

Memeriksa

Perintah verifikasi digunakan untuk memeriksa dan memperbaiki file VSAM yang belum ditutup dengan benar setelah terjadi kesalahan. Perintah menambahkan catatan End-Of-Data yang benar ke file.

VERIFY DS(vsam-file-name)

Dalam sintaks di atas, vsam-file-name adalah nama dataset VSAM yang perlu kita periksa kesalahannya.

Contoh

Contoh berikut menunjukkan bagaimana memeriksa dan memperbaiki kesalahan dalam dataset VSAM -

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

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan memperbaiki kesalahan dalam dataset VSAM.

Indeks alternatif adalah indeks tambahan yang dibuat untuk kumpulan data KSDS / ESDS selain indeks utamanya. Indeks alternatif menyediakan akses ke rekaman dengan menggunakan lebih dari satu kunci. Kunci indeks alternatif dapat berupa kunci non-unik, dapat memiliki duplikat.

Pembuatan Indeks Alternatif

Langkah-langkah berikut digunakan untuk membuat Indeks Alternatif -

  • Tentukan Indeks Alternatif
  • Tentukan Path
  • Indeks Bangunan

Tentukan Indeks Alternatif

Indeks Alternatif ditentukan dengan menggunakan DEFINE AIX perintah.

DEFINE AIX                              -
(NAME(alternate-index-name)             -
RELATE(vsam-file-name)                  -
CISZ(number)                            -
FREESPACE(CI-Percentage,CA-Percentage)  -
KEYS(length offset)                     -
NONUNIQUEKEY / UNIQUEKEY                -
UPGRADE / NOUPGRADE                     -
RECORDSIZE(average maximum))            -
DATA                                    -
   (NAME(vsam-file-name.data))          -
INDEX                                   -
   (NAME(vsam-file-name.index))

Sintaks di atas menunjukkan parameter yang digunakan saat menentukan Indeks Alternatif. Kita telah membahas beberapa parameter dalam Define Cluster Module dan beberapa parameter baru digunakan dalam mendefinisikan Indeks Alternatif yang akan kita bahas di sini -

Sr Tidak Parameter dengan Deskripsi
1

DEFINE AIX

Perintah Define AIX digunakan untuk mendefinisikan Alternate Index dan menentukan atribut parameter untuk komponennya.

2

NAME

NAMA menentukan nama Indeks Alternatif.

3

RELATE

RELATE menentukan nama cluster VSAM yang indeks alternatifnya dibuat.

4

NONUNIQUEKEY / UNIQUEKEY

UNIQUEKEY menentukan bahwa indeks alternatif itu unik dan NONUNIQUEKEY menentukan bahwa duplikat mungkin ada.

5

UPGRADE / NOUPGRADE

UPGRADE menentukan bahwa indeks alternatif harus dimodifikasi jika cluster dasar dimodifikasi dan NOUPGRADE menentukan bahwa indeks alternatif harus dibiarkan sendiri jika cluster dasar dimodifikasi.

Contoh

Berikut adalah contoh dasar untuk menunjukkan bagaimana mendefinisikan Indeks Alternatif di JCL -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DEFINE AIX (NAME(MY.VSAM.KSDSAIX)      -
   RELATE(MY.VSAM.KSDSFILE)               -
   CISZ(4096)                             -
   FREESPACE(20,20)                       -
   KEYS(20,7)                             -
   NONUNIQUEKEY                           -
   UPGRADE                                -
   RECORDSIZE(80,80))                     -
   DATA(NAME(MY.VSAM.KSDSAIX.DATA))       -
   INDEX(NAME(MY.VSAM.KSDSAIX.INDEX))
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan membuat Indeks Alternatif MY.VSAM.KSDSAIX.

Tentukan Path

Define Path digunakan untuk menghubungkan indeks alternatif ke cluster dasar. Saat menentukan jalur, kami menentukan nama jalur dan indeks alternatif yang terkait dengan jalur ini.

DEFINE PATH                        -
NAME(alternate-index-path-name)    -
PATHENTRY(alternate-index-name))

Sintaks di atas memiliki dua parameter. NAME digunakan untuk menentukan Nama Jalur Indeks Alternatif dan PATHENTRY digunakan untuk menentukan Nama Indeks Alternatif.

Contoh

Berikut adalah contoh dasar untuk mendefinisikan Path di JCL -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
DEFINE PATH                          -
   NAME(MY.VSAM.KSDSAIX.PATH)    -
   PATHENTRY(MY.VSAM.KSDSAIX))
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan membuat jalur antara Indeks Alternatif ke cluster dasar.

Indeks Bangunan

Perintah BLDINDEX digunakan untuk membangun indeks alternatif. BLDINDEX membaca semua catatan dalam kumpulan data terindeks VSAM (atau cluster dasar) dan mengekstrak data yang diperlukan untuk membuat indeks alternatif.

BLDINDEX                           -
INDATASET(vsam-cluster-name)       -
OUTDATASET(alternate-index-name))

Sintaks di atas memiliki dua parameter. INDATASET digunakan untuk menentukan Nama Cluster VSAM dan OUTDATASET digunakan untuk menentukan Nama Indeks Alternatif.

Contoh

Berikut adalah contoh dasar untuk Membangun Indeks di JCL -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   BLDINDEX                           -
   INDATASET(MY.VSAM.KSDSFILE)        -
   OUTDATASET(MY.VSAM.KSDSAIX))
/*

Jika Anda akan menjalankan JCL di atas pada server Mainframes. Ini harus dijalankan dengan MAXCC = 0 dan itu akan membangun indeks.

Katalog mempertahankan unit dan volume tempat kumpulan data berada. Katalog digunakan untuk pengambilan dataset. Dataset non-VSAM membuat entri katalog melalui Disposition Parameter di JCL. Kumpulan data VSAM memiliki katalognya sendiri dalam bentuk cluster KSDS. Pada gambar berikut Anda dapat melihat jenis katalog VSAM -

Katalog Master

Katalog master itu sendiri merupakan file yang memantau dan mengelola operasi VSAM. Mereka hanya memiliki satu katalog utama dalam sistem mana pun yang berisi entri tentang kumpulan data sistem dan kumpulan data VSAM. Dataset VSAM dan Non-VSAM mungkin memiliki entri di katalog master tetapi ini bukan praktik yang baik. Katalog master dibuat selama proses pembuatan sistem dan berada pada volume sistem. Katalog master memiliki semua sumber daya VSAM dalam sistem operasi. Semua file yang digunakan dalam VSAM dikontrol oleh katalog master. Katalog utama bertanggung jawab untuk operasi berikut -

  • Otorisasi Kata Sandi untuk file
  • Meningkatkan Keamanan
  • Akses VSAM untuk file
  • Manajemen Ruang file
  • Lokasi file
  • Ruang Kosong tersedia dalam file

Ketika salah satu dari atribut file di atas berubah, mereka secara otomatis diperbarui dalam katalog master. Katalog master didefinisikan menggunakan program IDCAMS.

Katalog Pengguna

Katalog pengguna memiliki struktur dan konsep yang sama dengan katalog master. Itu ada di tingkat hierarki berikutnya setelah katalog master. Katalog pengguna tidak wajib dalam sistem tetapi digunakan untuk meningkatkan keamanan sistem VSAM. Katalog master menunjuk ke file VSAM tetapi jika Katalog pengguna ada, maka katalog master menunjuk ke katalog pengguna. Katalog pengguna bisa banyak jumlahnya sesuai kebutuhan sistem. Dalam struktur VSAM jika katalog master dihapus maka tidak akan mempengaruhi katalog pengguna. Katalog pengguna berisi entri tentang kumpulan data khusus aplikasi. Informasi katalog pengguna disimpan dalam katalog master.

Ruang Data

Ruang data adalah area perangkat penyimpanan akses langsung yang dialokasikan secara eksklusif untuk penggunaan VSAM. Ruang data harus dibuat sebelum membuat cluster VSAM. Area yang ditempati oleh ruang data dicatat dalam Volume Table of Contents (VTOC), sehingga ruang tersebut tidak akan tersedia untuk alokasi penggunaan lain, baik VSAM maupun non-VSAM. VTOC memiliki masuknya area yang ditempati oleh ruang. VSAM menciptakan ruang data untuk menampung entri katalog pengguna. VSAM mengambil kendali atas ruang ini dan memantau serta memelihara ruang ini sesuai kebutuhan file VSAM.

Cluster Unik

Cluster Unik terdiri dari ruang data terpisah yang digunakan sepenuhnya oleh cluster yang dibuat di dalamnya. Cluster unik dibuat dari ruang yang tidak terisi pada penyimpanan akses langsung.

Cluster yang dialokasikan

File VSAM sub-alokasi berbagi ruang VSAM dengan file sub-alokasi lainnya. Ini menentukan bahwa file harus dialokasikan dalam ruang VSAM yang ada. Sub-alokasi digunakan untuk memudahkan pengelolaan dan kontrol ruang VSAM.

Set data non-VSAM

Set data non-VSAM berada pada tape dan penyimpanan akses langsung. Set data non-VSAM mungkin memiliki entri di katalog master dan katalog pengguna. Fungsi utama dari membuat katalog kumpulan data non-VSAM adalah untuk menyimpan informasi serial unit dan volume.

Saat bekerja dengan kumpulan data VSAM, Anda mungkin menemukan abends. Berikut adalah kode status file umum dengan deskripsinya yang akan membantu Anda menyelesaikan masalah -

Kode Deskripsi
00 Operasi berhasil diselesaikan
02 Ditemukan kunci duplikat Indeks Alternatif Non-Unik
04 Rekaman panjang tetap tidak valid
05 Saat melakukan OPEN File dan file tidak ada
10 Akhir File ditemukan
14 Mencoba MEMBACA rekaman relatif di luar batas file
20 Kunci Tidak Valid untuk VSAM KSDS atau RRDS
21 Kesalahan urutan saat menjalankan TULIS atau mengubah kunci di REWRITE
22 Kunci duplikat utama ditemukan
23 Rekaman tidak ditemukan atau File tidak ditemukan
24 Kunci di luar batas file
30 Kesalahan I / O Permanen
34 Rekam di luar batas file
35 Saat melakukan OPEN File dan file tidak ada
37 BUKA file dengan mode salah
38 Mencoba MEMBUKA file Terkunci
39 OPEN gagal karena atribut file bentrok
41 Mencoba MEMBUKA file yang sudah terbuka
42 Mencoba MENUTUP file yang tidak TERBUKA
43 Mencoba REWRITE tanpa MEMBACA rekaman terlebih dahulu
44 Mencoba REWRITE rekaman dengan panjang berbeda
46 Mencoba MEMBACA di luar End-of-file
47 Mencoba MEMBACA dari file yang tidak dibuka IO atau INPUT
48 Mencoba MENULIS ke file yang tidak dibuka IO atau OUTPUT
49 Mencoba MENGHAPUS atau MENGUBAH file yang tidak dibuka IO
91 Sandi atau otorisasi gagal
92 Kesalahan Logika
93 Sumber daya tidak tersedia
94 Rekaman berurutan tidak tersedia atau kesalahan OPEN bersamaan
95 Informasi File tidak valid atau tidak lengkap
96 Tidak ada pernyataan DD untuk file tersebut
97 BUKA berhasil dan integritas file diverifikasi
98 File Terkunci - OPEN gagal
99 Rekam Terkunci - Akses rekam gagal