VSAM - คลัสเตอร์

คลัสเตอร์ VSAM ถูกกำหนดใน JCL. JCL ใช้IDCAMSยูทิลิตี้เพื่อสร้างคลัสเตอร์ IDCAMS เป็นยูทิลิตี้ที่พัฒนาโดย IBM สำหรับบริการวิธีการเข้าถึง ใช้เพื่อกำหนดชุดข้อมูล VSAM เป็นหลัก

การกำหนดคลัสเตอร์

ไวยากรณ์ต่อไปนี้แสดงพารามิเตอร์หลักซึ่งจัดกลุ่มไว้ภายใต้ Define Cluster, Data และ 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]))

พารามิเตอร์ที่ระดับ CLUSTER ใช้กับคลัสเตอร์ทั้งหมด พารามิเตอร์ที่ระดับ DATA หรือ INDEX ใช้กับส่วนประกอบข้อมูลหรือดัชนีเท่านั้น

เราจะพูดถึงพารามิเตอร์แต่ละตัวโดยละเอียดในตารางต่อไปนี้ -

ซีเนียร์ No พารามิเตอร์พร้อมคำอธิบาย
1

DEFINE CLUSTER

คำสั่ง Define Cluster ใช้เพื่อกำหนดคลัสเตอร์และระบุแอ็ตทริบิวต์พารามิเตอร์สำหรับคลัสเตอร์และคอมโพเนนต์

2

NAME

NAME ระบุชื่อของไฟล์ VSAM ที่เรากำลังกำหนดคลัสเตอร์

3

BLOCKS

บล็อกระบุจำนวนบล็อกที่กำหนดสำหรับคลัสเตอร์

4

VOLUMES

ไดรฟ์ข้อมูลระบุไดรฟ์ข้อมูลอย่างน้อยหนึ่งไดรฟ์ที่จะมีคลัสเตอร์หรือส่วนประกอบ

5

INDEXED / NONINDEXED / NUMBERED / LINEAR

พารามิเตอร์นี้สามารถรับค่าได้สามค่า INDEXED, NONINDEXED หรือ NUMBERED ขึ้นอยู่กับประเภทของชุดข้อมูลที่เรากำลังสร้าง สำหรับไฟล์ลำดับคีย์ (KSDS) ใช้ตัวเลือก INDEXED สำหรับไฟล์ลำดับรายการ (ESDS) จะใช้ตัวเลือก NONINDEXED สำหรับไฟล์บันทึกสัมพัทธ์ (RRDS) จำเป็นต้องมีตัวเลือก NUMBERED สำหรับไฟล์ Linear (LDS) จำเป็นต้องมีตัวเลือก LINEAR ค่าเริ่มต้นของพารามิเตอร์นี้คือ INDEXED เราจะพูดคุยเพิ่มเติมเกี่ยวกับ KSDS, ESDS, RRDS และ LDS ในโมดูลที่กำลังจะมาถึง

6

RECSZ

พารามิเตอร์ Record Size มีสองค่าคือ Average และ Maximum record size ค่าเฉลี่ยระบุความยาวเฉลี่ยของเร็กคอร์ดโลจิคัลในไฟล์และค่าสูงสุดหมายถึงความยาวของเร็กคอร์ด

7

FREESPACE

Freespace ระบุเปอร์เซ็นต์ของพื้นที่ว่างที่จะสงวนไว้สำหรับช่วงควบคุม (CI) และพื้นที่ควบคุม (CA) ของส่วนประกอบข้อมูล ค่าเริ่มต้นของพารามิเตอร์นี้คือศูนย์เปอร์เซ็นต์

8

CISZ

CISZ เรียกว่าขนาดช่วงควบคุม ระบุขนาดของช่วงเวลาการควบคุม

9

KEYS

พารามิเตอร์คีย์ถูกกำหนดในไฟล์ลำดับคีย์ (KSDS) เท่านั้น ระบุความยาวและออฟเซ็ตของคีย์หลักจากคอลัมน์แรก ช่วงของค่าของพารามิเตอร์นี้อยู่ระหว่าง 1 ถึง 255 ไบต์

10

READPW

ค่าในพารามิเตอร์ READPW ระบุรหัสผ่านของระดับการอ่าน

11

FOR/TO

ค่าของพารามิเตอร์นี้ระบุระยะเวลาในรูปแบบของวันที่และวันสำหรับการเก็บรักษาไฟล์ ค่าเริ่มต้นสำหรับพารามิเตอร์นี้คือศูนย์วัน

12

UPDATEPW

ค่าในพารามิเตอร์ UPDATEPW ระบุรหัสผ่านของระดับการอัพเดต

13

REUSE / NOREUSE

พารามิเตอร์ REUSE อนุญาตให้กำหนดคลัสเตอร์ที่อาจถูกรีเซ็ตเป็นสถานะว่างโดยไม่ต้องลบและกำหนดใหม่

14

DATA - NAME

ส่วน DATA ของคลัสเตอร์มีชื่อชุดข้อมูลซึ่งมีข้อมูลจริงของไฟล์

15

INDEX-NAME

ส่วน INDEX ของคลัสเตอร์ประกอบด้วยคีย์หลักและตัวชี้หน่วยความจำสำหรับบันทึกที่เกี่ยวข้องในส่วนข้อมูล ถูกกำหนดเมื่อใช้คลัสเตอร์ลำดับคีย์

16

CATALOG

พารามิเตอร์แค็ตตาล็อกหมายถึงแค็ตตาล็อกที่ไฟล์จะถูกกำหนด เราจะพูดคุยเกี่ยวกับแคตตาล็อกแยกกันในโมดูลที่กำลังจะมาถึง

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างพื้นฐานเพื่อแสดงวิธีกำหนดคลัสเตอร์ใน 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))
/*

หากคุณจะเรียกใช้ JCL ข้างต้นบนเซิร์ฟเวอร์ Mainframes ควรรันด้วย MAXCC = 0 และจะสร้างไฟล์ MY.VSAM.KSDSFILE VSAM

การลบคลัสเตอร์

ในการลบไฟล์ VSAM คลัสเตอร์ VSAM จะต้องถูกลบโดยใช้ยูทิลิตี้ IDCAMS คำสั่ง DELETE จะลบรายการของคลัสเตอร์ VSAM ออกจากแค็ตตาล็อกและเป็นทางเลือกที่จะลบไฟล์ซึ่งจะช่วยเพิ่มพื้นที่ว่างที่อ็อบเจ็กต์ครอบครอง หากชุดข้อมูล VSAM ยังไม่หมดอายุชุดข้อมูลนั้นจะไม่ถูกลบ หากต้องการลบชุดข้อมูลประเภทดังกล่าวให้ใช้ตัวเลือก PURGE

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

ไวยากรณ์ด้านบนแสดงพารามิเตอร์ที่เราสามารถใช้กับคำสั่ง Delete เราจะพูดคุยกันโดยละเอียดในตารางต่อไปนี้ -

ซีเนียร์ No พารามิเตอร์พร้อมคำอธิบาย
1

ERASE / NOERASE

ระบุอ็อพชัน ERASE เพื่อแทนที่แอ็ตทริบิวต์ ERASE ที่ระบุสำหรับอ็อบเจ็กต์ในแค็ตตาล็อก ตัวเลือก NOERASE ถูกใช้โดยค่าเริ่มต้น

2

FORCE / NOFORCE

ตัวเลือก FORCE ถูกระบุเพื่อลบ SPACE และ USERCATALOG แม้ว่าจะไม่ว่างเปล่าก็ตาม ตัวเลือก NOFORCE ถูกใช้โดยค่าเริ่มต้น

3

PURGE / NOPURGE

ตัวเลือก PURGE ใช้เพื่อลบชุดข้อมูล VSAM หากชุดข้อมูลยังไม่หมดอายุ ตัวเลือก NOPURGE ถูกใช้โดยค่าเริ่มต้น

4

SCRATCH / NOSCRATCH

ระบุอ็อพชัน SCRATCH เพื่อลบรายการที่เกี่ยวข้องสำหรับอ็อบเจ็กต์ออกจาก Volume Table of Contents ส่วนใหญ่จะใช้สำหรับชุดข้อมูลที่ไม่ใช่ vsam เช่น GDG ตัวเลือก NOSCRATCH ถูกใช้โดยค่าเริ่มต้น

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างพื้นฐานเพื่อแสดงวิธีการลบคลัสเตอร์ใน JCL -

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

หากคุณจะเรียกใช้ JCL ข้างต้นบนเซิร์ฟเวอร์ Mainframes ควรรันด้วย MAXCC = 0 และจะลบไฟล์ MY.VSAM.KSDSFILE VSAM