VSAM - Cụm
Cụm VSAM được xác định trong JCL. JCL sử dụngIDCAMStiện ích để tạo một cụm. IDCAMS là một tiện ích, được phát triển bởi IBM, dành cho các dịch vụ phương thức truy cập. Nó được sử dụng chủ yếu để xác định các bộ dữ liệu VSAM.
Xác định một cụm
Cú pháp sau đây hiển thị các tham số chính được nhóm theo Define Cluster, Data và 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]))
Các thông số ở cấp CLUSTER áp dụng cho toàn bộ cụm. Các thông số ở cấp DATA hoặc INDEX chỉ áp dụng cho thành phần dữ liệu hoặc chỉ mục.
Chúng ta sẽ thảo luận chi tiết từng tham số trong bảng sau:
Sr.No | Tham số với Mô tả |
---|---|
1 | DEFINE CLUSTER Lệnh Define Cluster được sử dụng để định nghĩa một cụm và chỉ định các thuộc tính tham số cho cụm và các thành phần của nó. |
2 | NAME NAME chỉ định tên của tệp VSAM mà chúng tôi đang xác định cụm. |
3 | BLOCKS Các khối chỉ định số khối được gán cho cụm. |
4 | VOLUMES Các tập chỉ định một hoặc nhiều tập sẽ chứa cụm hoặc thành phần. |
5 | INDEXED / NONINDEXED / NUMBERED / LINEAR Tham số này có thể nhận ba giá trị INDEXED, NONINDEXED hoặc NUMBERED tùy thuộc vào loại tập dữ liệu mà chúng tôi đang tạo. Đối với tệp theo trình tự khóa (KSDS), tùy chọn INDEXED được sử dụng. Đối với tệp theo trình tự mục nhập (ESDS), tùy chọn NONINDEXED được sử dụng. Đối với tệp bản ghi tương đối (RRDS), tùy chọn NUMBERED là bắt buộc. Đối với tệp tuyến tính (LDS), tùy chọn LINEAR là bắt buộc. Giá trị mặc định của tham số này là INDEXED. Chúng tôi sẽ thảo luận thêm về KSDS, ESDS, RRDS và LDS trong các mô-đun tới. |
6 | RECSZ Tham số Kích thước Bản ghi có hai giá trị là Kích thước bản ghi Trung bình và Tối đa. Giá trị Trung bình chỉ định độ dài trung bình của các bản ghi lôgic trong tệp và Giá trị Tối đa biểu thị độ dài của các bản ghi. |
7 | FREESPACE Freespace chỉ định phần trăm không gian trống để dự trữ cho các khoảng điều khiển (CI) và vùng điều khiển (CA) của thành phần dữ liệu. Giá trị mặc định của tham số này là không phần trăm. |
số 8 | CISZ CISZ được gọi là Kích thước khoảng kiểm soát. Nó chỉ định kích thước của khoảng kiểm soát. |
9 | KEYS Tham số khóa chỉ được xác định trong các tệp theo trình tự khóa (KSDS). Nó chỉ định độ dài và độ lệch của khóa chính từ cột đầu tiên. Phạm vi giá trị của tham số này là từ 1 đến 255 byte. |
10 | READPW Giá trị trong tham số READPW chỉ định mật khẩu của cấp độ đọc. |
11 | FOR/TO Giá trị của tham số này chỉ định lượng thời gian về ngày tháng để lưu giữ tệp. Giá trị mặc định cho tham số này là 0 ngày. |
12 | UPDATEPW Giá trị trong tham số UPDATEPW chỉ định mật khẩu của cấp cập nhật. |
13 | REUSE / NOREUSE Tham số REUSE cho phép các cụm được xác định có thể được đặt lại về trạng thái trống mà không cần xóa và xác định lại chúng. |
14 | DATA - NAME Phần DATA của cụm chứa tên tập dữ liệu chứa dữ liệu thực của tệp. |
15 | INDEX-NAME Phần INDEX của cụm chứa khóa chính và con trỏ bộ nhớ cho bản ghi tương ứng trong phần dữ liệu. Nó được xác định khi sử dụng cụm Key Sequence. |
16 | CATALOG Tham số danh mục biểu thị danh mục mà tệp sẽ được xác định. Chúng ta sẽ thảo luận riêng về danh mục trong các học phần sắp tới. |
Thí dụ
Sau đây là một ví dụ cơ bản để chỉ ra cách xác định một cụm trong 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))
/*
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ẽ tạo tệp MY.VSAM.KSDSFILE VSAM.
Xóa một cụm
Để xóa tệp VSAM, cần xóa cụm VSAM bằng tiện ích IDCAMS. Lệnh DELETE xóa mục nhập của cụm VSAM khỏi danh mục và tùy chọn loại bỏ tệp, do đó giải phóng không gian bị chiếm dụng bởi đối tượng. Nếu tập dữ liệu VSAM chưa hết hạn thì nó sẽ không bị xóa. Để xóa các loại tập dữ liệu như vậy, hãy sử dụng tùy chọn PURGE.
DELETE data-set-name CLUSTER
[ERASE / NOERASE]
[FORCE / NOFORCE]
[PURGE / NOPURGE]
[SCRATCH / NOSCRATCH]
Cú pháp trên hiển thị các tham số mà chúng ta có thể sử dụng với câu lệnh Delete. Chúng ta sẽ thảo luận chi tiết về từng loại trong bảng sau:
Sr.No | Tham số với Mô tả |
---|---|
1 | ERASE / NOERASE Tùy chọn ERASE được chỉ định để ghi đè thuộc tính ERASE được chỉ định cho đối tượng trong danh mục. Tùy chọn NOERASE được sử dụng theo mặc định. |
2 | FORCE / NOFORCE Tùy chọn FORCE được chỉ định để xóa SPACE và USERCATALOG ngay cả khi chúng không trống. Tùy chọn NOFORCE được sử dụng theo mặc định. |
3 | PURGE / NOPURGE Tùy chọn PURGE được sử dụng để xóa tập dữ liệu VSAM nếu tập dữ liệu chưa hết hạn. Tùy chọn NOPURGE được sử dụng theo mặc định. |
4 | SCRATCH / NOSCRATCH Tùy chọn SCRATCH được chỉ định để xóa mục nhập liên quan cho đối tượng khỏi Mục lục Tập. Nó chủ yếu được sử dụng cho các bộ dữ liệu không phải vsam như GDG. Tùy chọn NOSCRATCH được sử dụng theo mặc định. |
Thí dụ
Sau đây là một ví dụ cơ bản để hiển thị cách xóa một cụm trong JCL -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD SYSOUT = *
//SYSIN DD *
DELETE MY.VSAM.KSDSFILE CLUSTER
PURGE
/*
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ẽ xóa tệp MY.VSAM.KSDSFILE VSAM.