
- 學習 VSAM 教程
- VSAM - 首頁
- VSAM - 概述
- VSAM - 元件
- VSAM - 叢集
- VSAM - ESDS
- VSAM - KSDS
- VSAM - RRDS
- VSAM - LDS
- VSAM - 命令
- VSAM - 備用索引
- VSAM - 目錄
- VSAM - 檔案狀態
- VSAM - 面試問題
- VSAM 有用資源
- VSAM - 快速指南
- VSAM - 有用資源
- VSAM - 討論
VSAM - ESDS
ESDS 指的是按順序輸入的資料集 (Entry Sequenced Data Set)。按順序輸入的資料集的行為類似於順序檔案組織,但包含更多功能。我們可以直接訪問記錄,並出於安全目的使用密碼。必須在 DEFINE CLUSTER 命令中為 ESDS 資料集編碼NONINDEXED。以下是 ESDS 的主要功能:
ESDS 叢集中的記錄按其插入資料集的順序儲存。
記錄透過物理地址引用,該地址稱為相對位元組地址 (RBA)。例如,如果在 ESDS 資料集中,我們有 80 位元組的記錄,則第一條記錄的 RBA 為 0,第二條記錄的 RBA 為 80,第三條記錄的 RBA 為 160,依此類推。
可以透過 RBA 按順序訪問記錄,這稱為定址訪問。
記錄按插入順序儲存。新記錄插入到末尾。
ESDS 資料集中不允許刪除記錄。但可以將其標記為無效。
ESDS 資料集中的記錄可以是固定長度或可變長度。
ESDS 是非索引的。ESDS 資料集中不存在鍵,因此它可能包含重複記錄。
ESDS 可以像任何其他檔案一樣在 COBOL 程式中使用。我們將在 JCL 中指定檔名,並且可以在程式內使用 ESDS 檔案進行處理。在 COBOL 程式中,將檔案組織指定為順序,並將訪問模式指定為 ESDS 資料集的順序。
定義 ESDS 叢集
以下語法顯示了建立 ESDS 叢集時可以使用哪些引數。引數描述與 VSAM - 叢集模組中提到的相同。
DEFINE CLUSTER (NAME(esds-file-name) - BLOCKS(number) - VOLUMES(volume-serial) - NONINDEXED - RECSZ(average maximum) - [FREESPACE(CI-Percentage,CA-Percentage)] - CISZ(number) - [READPW(password)] - [FOR(days)|TO(date)] - [UPDATEPW(password)] - [REUSE / NOREUSE]) - DATA - (NAME(esds-file-name.data))
示例
以下示例演示瞭如何使用 IDCAMS 實用程式在 JCL 中建立 ESDS 叢集:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * DEFINE CLUSTER (NAME(MY.VSAM.ESDSFILE) - NONINDEXED - RECSZ(80 80) - TRACKS(1,1) - CISZ(4096) - FREESPACE(3 3) ) - DATA (NAME(MY.VSAM.ESDSFILE.DATA)) /*
如果在大型機伺服器上執行上述 JCL,則應以 MAXCC = 0 執行,並且將建立 MY.VSAM.ESDSFILE VSAM 檔案。
刪除 ESDS 叢集
ESDS 叢集使用 IDCAMS 實用程式刪除。DELETE 命令刪除 VSAM 叢集在目錄中的條目,並可選地刪除檔案,從而釋放物件佔用的空間。
DELETE data-set-name CLUSTER [ERASE / NOERASE] [FORCE / NOFORCE] [PURGE / NOPURGE] [SCRATCH / NOSCRATCH]
上述語法顯示了刪除 ESDS 叢集時可以使用哪些引數。引數描述與 VSAM - 叢集模組中提到的相同。
示例
以下示例演示瞭如何使用 IDCAMS 實用程式在 JCL 中刪除 ESDS 叢集:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEPNAME EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * DELETE MY.VSAM.ESDSFILE CLUSTER /*
如果在大型機伺服器上執行上述 JCL,則應以 MAXCC = 0 執行,並且將刪除 MY.VSAM.ESDSFILE VSAM 叢集。