VSAM - Lệnh

Các lệnh VSAM được sử dụng để thực hiện các hoạt động nhất định trên bộ dữ liệu VSAM. Sau đây là các lệnh VSAM hữu ích nhất:

  • Alter
  • Repro
  • Listcat
  • Examine
  • Verify

Alter

Lệnh ALTER được sử dụng để sửa đổi các thuộc tính tệp VSAM. Chúng tôi có thể thay đổi các thuộc tính của tệp VSAM mà chúng tôi đã đề cập trong định nghĩa Cụm VSAM. Sau đây là cú pháp để thay đổi các thuộc tính:

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

Cú pháp trên cho thấy chúng ta có thể thay đổi những tham số nào trong một cụm VSAM hiện có. Mô tả tham số vẫn giống như đã đề cập trong VSAM - Cluster module.

Thí dụ

Ví dụ sau cho thấy cách sử dụng lệnh ALTER để tăng Freespace, để thêm nhiều khối lượng hơn và các phím thay thế -

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

Nếu bạn sẽ thực thi JCL trên trên máy chủ Mainframes. Nó sẽ thực thi với MAXCC = 0 và nó sẽ thay đổi Freespace, Volumes và Keys.

Repro

Lệnh REPRO được sử dụng để tải dữ liệu vào tập dữ liệu VSAM. Nó cũng được sử dụng để sao chép dữ liệu từ tập dữ liệu VSAM này sang tập dữ liệu VSAM khác. Chúng ta có thể sử dụng lệnh này để sao chép dữ liệu từ tệp tuần tự sang tệp VSAM. Tiện ích IDCAMS sử dụng lệnh REPRO để tải các tập dữ liệu.

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

Trong cú pháp trên, tên in-dd là tên DD cho Tập dữ liệu đầu vào đang có bản ghi. Out-ddname là tên DD cho Tập dữ liệu đầu ra, nơi các bản ghi của tập dữ liệu đầu vào sẽ được sao chép.

Thí dụ

Ví dụ sau cho thấy cách sao chép các bản ghi từ một tập dữ liệu này sang một tập dữ liệu VSAM khác:

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

Nếu bạn sẽ thực thi JCL trên trên máy chủ Mainframes. Nó sẽ thực thi với MAXCC = 0 và nó sẽ sao chép tất cả các bản ghi từ MY.VSAM.KSDSFILE sang tệp MY.VSAM1.KSDSFILE VSAM.

Listcat

Lệnh LISTCAT được sử dụng để lấy chi tiết danh mục của tập dữ liệu VSAM. Lệnh Listcat cung cấp thông tin sau về bộ dữ liệu VSAM:

  • Thông tin SMS
  • Thông tin RLS
  • Thông tin khối lượng
  • Thông tin Sphere
  • Thông tin phân bổ
  • Thuộc tính tập dữ liệu
LISTCAT ENTRY(vsam-file-name) ALL

Trong cú pháp trên, vsam-file-name là tên tập dữ liệu VSAM mà chúng ta cần tất cả thông tin. ALL từ khóa được chỉ định để có được tất cả các chi tiết danh mục.

Thí dụ

Ví dụ sau đây cho thấy cách tìm nạp tất cả các chi tiết bằng lệnh Listcat cho tập dữ liệu VSAM:

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

Nếu bạn sẽ thực thi JCL trên trên máy chủ Mainframes. Nó sẽ thực thi với MAXCC = 0 và nó sẽ hiển thị tất cả các chi tiết danh mục về tập dữ liệu MY.VSAM.KSDSFILE.

Xem xét

Lệnh Examine được sử dụng để kiểm tra tính toàn vẹn cấu trúc của một cụm tập dữ liệu theo trình tự khóa. Nó kiểm tra các thành phần chỉ mục và dữ liệu và nếu tìm thấy bất kỳ vấn đề nào, các thông báo lỗi sẽ được gửi đi. Bạn có thể kiểm tra bất kỳ tin nhắn IDCxxxxx nào.

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

Trong cú pháp trên, vsam-ksds-name là tên tập dữ liệu VSAM mà chúng ta cần kiểm tra chỉ mục và phần dữ liệu của VSAM cluster.

Thí dụ

Ví dụ sau cho thấy cách kiểm tra xem phần Chỉ mục và Dữ liệu của tập dữ liệu KSDS có được đồng bộ hóa hay không -

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

Nếu bạn sẽ thực thi JCL trên trên máy chủ Mainframes. Nó sẽ thực thi với MAXCC = 0 và nó sẽ hiển thị tất cả các vấn đề với tập dữ liệu VSAM trong một trong các thông báo IDCxxxxx trong ống.

Kiểm chứng

Lệnh Verify được sử dụng để kiểm tra và sửa các tệp VSAM chưa được đóng đúng cách sau khi xảy ra lỗi. Lệnh này thêm các bản ghi dữ liệu cuối chính xác vào tệp.

VERIFY DS(vsam-file-name)

Trong cú pháp trên, vsam-file-name là tên tập dữ liệu VSAM mà chúng ta cần kiểm tra lỗi.

Thí dụ

Ví dụ sau cho thấy cách kiểm tra và sửa lỗi trong tập dữ liệu VSAM:

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

Nếu bạn sẽ thực thi JCL trên trên máy chủ Mainframes. Nó sẽ thực thi với MAXCC = 0 và nó sẽ sửa các lỗi trong tập dữ liệu VSAM.