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:

  • NEW: Tập dữ liệu được tạo mới theo bước công việc. OUTPUT1 trong ví dụ trên.

  • OLD: Tập dữ liệu đã được tạo và sẽ được ghi đè trong bước công việc. Bước công việc có được quyền truy cập độc quyền vào tập dữ liệu và không công việc nào khác có thể truy cập tập dữ liệu này cho đến khi hoàn thành bước công việc.

  • SHR: Tập dữ liệu đã được tạo và sẽ được đọc trong bước công việc. Tập dữ liệu có thể được đọc bởi nhiều công việc cùng một lúc. Ví dụ: INPUT1 và INPUT2.

  • MOD: Tập dữ liệu đã được tạo. Sự sắp xếp này sẽ được sử dụng khi có nhu cầu thêm các bản ghi mới vào tập dữ liệu hiện có (các bản ghi hiện có sẽ không bị ghi đè).

A normal-disposition tham số có thể nhận một trong các giá trị sau

  • CATLG, UNCATLG, DELETE, PASS và KEEP

A abnormal-disposition tham số có thể nhận một trong các giá trị sau

  • CATLG, UNCATLG, DELETE và KEEP

Đây là mô tả của các tham số CATLG, UNCATLG, DELETE, PASS và KEEP:

  • CATLG : Tập dữ liệu được giữ lại với một mục nhập trong danh mục hệ thống.

  • UNCATLG : Tập dữ liệu được giữ lại nhưng mục nhập danh mục hệ thống bị xóa.

  • KEEP: Tập dữ liệu được giữ lại mà không thay đổi bất kỳ mục nhập danh mục nào. KEEP là cách xử lý hợp lệ duy nhất cho các tệp VSAM. Điều này chỉ được sử dụng cho các tập dữ liệu vĩnh viễn.

  • DELETE : Tập dữ liệu bị xóa khỏi danh mục người dùng và hệ thống.

  • PASS: Điều này chỉ có giá trị cho việc bố trí thông thường. Điều này được sử dụng khi tập dữ liệu sẽ được chuyển và xử lý bởi bước công việc tiếp theo trong JCL

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:

  • status : MỚI là giá trị mặc định.

  • normal-disposition : Nếu trạng thái là MỚI, chế độ bình thường mặc định là XÓA, nếu trạng thái là GIỮ.

  • abnormal-disposition : Giống như bố cục bình thường.

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:

  • spcunits : Đây có thể là một trong các CYL (Xi lanh), TRK (Đường ray) hoặc BLKSIZE (Kích thước khối).

  • pri : Đây là không gian chính cần thiết cho tập dữ liệu.

  • sec : Đây là không gian bổ sung cần thiết, khi không gian chính không đủ.

  • ir : Đây là khối thư mục bắt buộc, nếu tập dữ liệu là PDS (Tập dữ liệu phân vùng) với các thành viên bên trong nó.

  • RLSE : Điều này được sử dụng để giải phóng không gian không sử dụng khi hoàn thành công việc.

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=*