
- 學習 VSAM 教程
- VSAM - 首頁
- VSAM - 概述
- VSAM - 元件
- VSAM - 叢集
- VSAM - ESDS
- VSAM - KSDS
- VSAM - RRDS
- VSAM - LDS
- VSAM - 命令
- VSAM - 備用索引
- VSAM - 目錄
- VSAM - 檔案狀態
- VSAM - 面試問題
- VSAM 有用資源
- VSAM - 快速指南
- VSAM - 有用資源
- VSAM - 討論
VSAM - 叢集
VSAM 叢集在JCL中定義。JCL 使用IDCAMS實用程式建立叢集。IDCAMS 是 IBM 開發的訪問方法服務實用程式。它主要用於定義 VSAM 資料集。
定義叢集
以下語法顯示了在定義叢集、資料和索引下分組的主要引數。
.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 級別上的引數僅適用於資料或索引元件。
我們將在下表中詳細討論每個引數 -
序號 | 帶描述的引數 |
---|---|
1 | DEFINE CLUSTER Define Cluster 命令用於定義叢集併為叢集及其元件指定引數屬性。 |
2 | NAME NAME 指定我們正在為其定義叢集的 VSAM 檔案的名稱。 |
3 | BLOCKS Blocks 指定分配給叢集的塊數。 |
4 | VOLUMES Volumes 指定將包含叢集或元件的一個或多個卷。 |
5 | INDEXED / NONINDEXED / NUMBERED / LINEAR 此引數可以取三個值 INDEXED、NONINDEXED 或 NUMBERED,具體取決於我們正在建立的資料集型別。對於鍵順序 (KSDS) 檔案,使用 INDEXED 選項。對於條目順序 (ESDS) 檔案,使用 NONINDEXED 選項。對於相對記錄 (RRDS) 檔案,需要 NUMBERED 選項。對於線性 (LDS) 檔案,需要 LINEAR 選項。此引數的預設值為 INDEXED。我們將在後續模組中詳細討論 KSDS、ESDS、RRDS 和 LDS。 |
6 | RECSZ 記錄大小引數有兩個值,分別是平均記錄大小和最大記錄大小。平均值指定檔案中邏輯記錄的平均長度,最大值表示記錄的長度。 |
7 | FREESPACE Freespace 指定為資料元件的控制間隔 (CI) 和控制區域 (CA) 保留的空閒空間百分比。此引數的預設值為零百分比。 |
8 | CISZ CISZ 稱為控制間隔大小。它指定控制間隔的大小。 |
9 | KEYS 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 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。它應該以 MAXCC = 0 執行,並且它將建立 MY.VSAM.KSDSFILE VSAM 檔案。
刪除叢集
要刪除 VSAM 檔案,需要使用 IDCAMS 實用程式刪除 VSAM 叢集。DELETE 命令從目錄中刪除 VSAM 叢集的條目,並可以選擇刪除檔案,從而釋放物件佔用的空間。如果 VSAM 資料集未過期,則不會刪除它。要刪除此類資料集,請使用 PURGE 選項。
DELETE data-set-name CLUSTER [ERASE / NOERASE] [FORCE / NOFORCE] [PURGE / NOPURGE] [SCRATCH / NOSCRATCH]
以上語法顯示了我們可以與 Delete 語句一起使用的引數。我們將在下表中詳細討論每個引數 -
序號 | 帶描述的引數 |
---|---|
1 |
ERASE / NOERASE ERASE 選項指定覆蓋在目錄中為物件指定的 ERASE 屬性。NOERASE 選項預設採用。 |
2 |
FORCE / NOFORCE FORCE 選項指定即使 SPACE 和 USERCATALOG 不為空也刪除它們。NOFORCE 選項預設採用。 |
3 |
PURGE / NOPURGE PURGE 選項用於刪除 VSAM 資料集,如果資料集未過期。NOPURGE 選項預設採用。 |
4 |
SCRATCH / NOSCRATCH SCRATCH 選項指定從卷目錄表中刪除與物件關聯的條目。它主要用於非 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。它應該以 MAXCC = 0 執行,並且它將刪除 MY.VSAM.KSDSFILE VSAM 檔案。