JCL - Tuyên bố DD
Tập dữ liệu là các tệp máy tính lớn với các bản ghi được tổ chức theo một định dạng cụ thể. Tập dữ liệu được lưu trữ trên Thiết bị Lưu trữ Truy cập Trực tiếp (DASD) hoặc Băng của máy tính lớn và là vùng lưu trữ dữ liệu cơ bản. Nếu những dữ liệu này được yêu cầu sử dụng / tạo trong một chương trình hàng loạt, thì tên vật lý của tệp (tức là tập dữ liệu) cùng với định dạng và tổ chức tệp được mã hóa trong một JCL.
Định nghĩa của mỗi tập dữ liệu được sử dụng trong JCL được đưa ra bằng cách sử dụng DD statement. Các tài nguyên đầu vào và đầu ra theo yêu cầu của một bước công việc cần được mô tả trong câu lệnh DD với các thông tin như tổ chức tập dữ liệu, yêu cầu lưu trữ và độ dài bản ghi.
Cú pháp
Sau đây là cú pháp cơ bản của câu lệnh JCL DD:
//DD-name DD Parameters
Sự miêu tả
Hãy để chúng tôi xem mô tả của các thuật ngữ được sử dụng trong cú pháp câu lệnh DD ở trên.
DD-TÊN
DD-NAME xác định tập dữ liệu hoặc tài nguyên đầu vào / đầu ra. Nếu đây là tệp đầu vào / đầu ra được sử dụng bởi chương trình COBOL / Assembler, thì tệp được tham chiếu bởi tên này trong chương trình.
DD
Đây là từ khóa để xác định nó là một câu lệnh DD.
THÔNG SỐ
Sau đây là các tham số khác nhau cho câu lệnh DD. Bạn có thể sử dụng một hoặc nhiều tham số dựa trên các yêu cầu và chúng được phân tách bằng dấu phẩy:
Tham số | Sự miêu tả |
---|---|
DSN | Tham số DSN đề cập đến tên tập dữ liệu vật lý của tập dữ liệu mới được tạo hoặc hiện có. Giá trị DSN có thể được tạo thành từ các tên con có độ dài từ 1 đến 8 ký tự, được phân tách bằng dấu chấm và có tổng độ dài là 44 ký tự (chữ và số). Sau đây là cú pháp: DSN=Physical Dataset Name Temporary datasetschỉ cần bộ nhớ trong khoảng thời gian công việc và sẽ bị xóa khi hoàn thành công việc. Các tập dữ liệu như vậy được biểu diễn dưới dạngDSN=&name hoặc đơn giản là không có DSN được chỉ định. Nếu một tập dữ liệu tạm thời được tạo bởi một bước công việc sẽ được sử dụng trong bước công việc tiếp theo, thì nó được tham chiếu là DSN=*.stepname.ddname. Đây được gọi là Backward Referencing. |
DISP | Tham số DISP được sử dụng để mô tả trạng thái của tập dữ liệu, việc bố trí ở cuối bước công việc về hoàn thành bình thường và bất thường. DISP không bắt buộc trong câu lệnh DD chỉ khi tập dữ liệu được tạo và xóa trong cùng một bước công việc (như tập dữ liệu tạm thời). Sau đây là cú pháp: DISP=(status, normal-disposition, abnormal-disposition) Sau đây là các giá trị hợp lệ cho status:
A normal-disposition tham số có thể nhận một trong các giá trị sau
A abnormal-disposition tham số có thể nhận một trong các giá trị sau
Đây là mô tả của các tham số CATLG, UNCATLG, DELETE, PASS và KEEP:
Khi bất kỳ tham số phụ nào của DISP không được chỉ định, các giá trị mặc định như sau:
|
DCB | Tham số Khối điều khiển dữ liệu (DCB) nêu chi tiết các đặc điểm vật lý của tập dữ liệu. Tham số này là bắt buộc đối với các tập dữ liệu mới được tạo trong bước công việc. LRECL là độ dài của mỗi bản ghi được giữ trong tập dữ liệu. RECFM là định dạng bản ghi của tập dữ liệu. RECFM có thể giữ các giá trị FB, V hoặc VB. FB là một tổ chức khối cố định nơi một hoặc nhiều bản ghi logic được nhóm lại trong một khối duy nhất. V là tổ chức thay đổi trong đó một bản ghi logic có độ dài thay đổi được đặt trong một khối vật lý. VB là tổ chức Khối biến trong đó một hoặc nhiều bản ghi logic có độ dài thay đổi được đặt trong một khối vật lý. BLKSIZE là kích thước của khối vật lý. Khối càng lớn thì số lượng bản ghi cho một tệp FB hoặc VB càng lớn. DSORG là kiểu tổ chức tập dữ liệu. DSORG có thể giữ các giá trị PS (Tuần tự vật lý), PO (Tổ chức phân vùng) và DA (Tổ chức trực tiếp). Khi cần sao chép các giá trị DCB của một tập dữ liệu này sang một tập dữ liệu khác trong cùng một bước công việc hoặc JCL, thì nó được chỉ định là DCB = *. Stepname.ddname trong đó stepname là tên của bước công việc và ddname là tập dữ liệu mà từ đó DCB được sao chép. Kiểm tra ví dụ dưới đây khi RECFM = FB, LRECL = 80 tạo thành DCB của OUTPUT1 tập dữ liệu. |
SPACE | Tham số SPACE chỉ định không gian cần thiết cho tập dữ liệu trong DASD (Đĩa lưu trữ truy cập trực tiếp). Sau đây là cú pháp: SPACE=(spcunits, (pri, sec, dir), RLSE) Đây là mô tả của tất cả các tham số được sử dụng:
|
UNIT | Các tham số UNIT và VOL được liệt kê trong danh mục hệ thống cho các tập dữ liệu được phân loại và do đó có thể được truy cập chỉ với tên DSN vật lý. Nhưng đối với các tập dữ liệu chưa được phân loại, câu lệnh DD nên bao gồm các tham số này. Đối với các tập dữ liệu mới được tạo, các tham số UNIT / VOL có thể được chỉ định hoặc Z / OS phân bổ thiết bị và khối lượng phù hợp. Tham số UNIT chỉ định loại thiết bị mà tập dữ liệu được lưu trữ. Loại thiết bị có thể được xác định bằng cách sử dụng Địa chỉ phần cứng hoặc nhóm Loại thiết bị. Sau đây là cú pháp: UNIT=DASD | SYSDA Trong đó DASD là viết tắt của Direct Access Storage Device và SYSDA là viết tắt của System Direct Access và đề cập đến thiết bị lưu trữ đĩa có sẵn tiếp theo. |
VOL | Tham số VOL chỉ định số âm lượng trên thiết bị được xác định bởi tham số UNIT. Sau đây là cú pháp: VOL=SER=(v1,v2) Trong đó v1, v2 là số thứ tự khối lượng. Bạn cũng có thể sử dụng cú pháp sau: VOL=REF=*.DDNAME Trong đó REF là tham chiếu ngược đến số sê-ri của tập dữ liệu trong bất kỳ bước công việc nào trước đó trong JCL. |
SYSOUT | Các tham số câu lệnh DD được thảo luận cho đến nay tương ứng với dữ liệu được lưu trữ trong tập dữ liệu. Tham số SYSOUT hướng dữ liệu đến thiết bị đầu ra dựa trên lớp được chỉ định. Sau đây là cú pháp SYSOUT=class Trong đó nếu lớp là A thì nó chuyển hướng đầu ra đến máy in và nếu lớp là * sau đó nó hướng đầu ra đến đích giống như của tham số MSGCLASS trong câu lệnh JOB. |
Thí dụ
Dưới đây là một ví dụ sử dụng các câu lệnh DD cùng với các tham số khác nhau được giải thích ở trên:
//TTYYSAMP JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K,
// NOTIFY=&SYSUID
//*
//STEP010 EXEC PGM=ICETOOL,ADDRSPC=REAL
//*
//INPUT1 DD DSN=TUTO.SORT.INPUT1,DISP=SHR
//INPUT2 DD DSN=TUTO.SORT.INPUT2,DISP=SHR,UNIT=SYSDA,
// VOL=SER=(1243,1244)
//OUTPUT1 DD DSN=MYFILES.SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
// RECFM=FB,LRECL=80,SPACE=(CYL,(10,20))
//OUTPUT2 DD SYSOUT=*