
- 學習 VSAM 教程
- VSAM - 首頁
- VSAM - 概述
- VSAM - 元件
- VSAM - 叢集
- VSAM - ESDS (入門式順序資料集)
- VSAM - KSDS (鍵式順序資料集)
- VSAM - 相對記錄資料集 (RRDS)
- VSAM - LDS (線性資料集)
- VSAM - 命令
- VSAM - 備用索引
- VSAM - 目錄
- VSAM - 檔案狀態
- VSAM - 面試問題
- VSAM 有用資源
- VSAM - 快速指南
- VSAM - 有用資源
- VSAM - 討論
VSAM - 相對記錄資料集 (RRDS)
RRDS 即相對記錄資料集。RRDS 叢集類似於 ESDS 叢集。唯一的區別在於 RRDS 記錄透過相對記錄號 (RRN) 訪問,我們必須在 DEFINE CLUSTER 命令中編碼NUMBERED。以下是 RRDS 的主要特性:
相對記錄資料集的記錄由相對記錄號 (RRN)標識,該號碼是相對於第一條記錄的序列號。
RRDS 允許按編號訪問記錄,例如記錄 1、記錄 2 等。這提供了隨機訪問,並假設應用程式程式有方法獲取所需的記錄號。
可以順序地(按相對記錄號順序)或直接地(提供所需記錄的相對記錄號)訪問 RRDS 資料集中的記錄。
RRDS 資料集中的記錄儲存在固定長度的槽中。每個記錄都由其槽號引用,編號可以從 1 到資料集中的最大記錄數不等。
可以透過將新記錄插入空槽來寫入 RRDS 中的記錄。
可以從 RRDS 叢集中刪除記錄,從而留下空槽。
使用固定長度記錄或具有上下文含義的記錄號的應用程式可以使用 RRDS 資料集。
RRDS 可像其他檔案一樣用於COBOL程式中。我們將在 JCL 中指定檔名,並且可以使用 KSDS 檔案在程式內進行處理。在 COBOL 程式中,將檔案組織指定為RELATIVE,並且可以使用任何訪問模式(順序、隨機或動態)與 RRDS 資料集一起使用。
RRDS 檔案結構
在 RRDS 檔案結構中,空間被劃分為固定長度的槽。一個槽可以是完全空閒的,也可以是完全滿的。因此,可以將新記錄新增到空槽中,也可以從已填充的槽中刪除現有記錄。我們可以透過提供相對記錄號直接訪問任何記錄。以下示例顯示了資料檔案的基本結構:
資料元件
相對記錄號 | 記錄欄位 1 | 記錄欄位 2 |
---|---|---|
1 | 教程 | 要點 |
2 | Mohtashim | M. |
3 | Nishant | Malik |
定義 RRDS 叢集
以下語法顯示了在建立 RRDS 叢集時可以使用哪些引數。
引數說明與 VSAM - 叢集模組中提到的相同。
DEFINE CLUSTER (NAME(rrds-file-name) - BLOCKS(number) - VOLUMES(volume-serial) - NUMBERED - RECSZ(average maximum) - [FREESPACE(CI-Percentage,CA-Percentage)] - CISZ(number) - [READPW(password)] - [FOR(days)|TO(date)] - [UPDATEPW(password)] - [REUSE / NOREUSE]) - DATA - (NAME(rrds-file-name.data))
示例
以下示例演示瞭如何在 JCL 中使用 IDCAMS 實用程式建立 RRDS 叢集:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * DEFINE CLUSTER (NAME(MY.VSAM.RRDSFILE) - NUMBERED - RECSZ(80 80) - TRACKS(1,1) - REUSE - FREESPACE(3 3) ) - DATA (NAME(MY.VSAM.RRDSFILE.DATA)) /*
如果在大型機伺服器上執行上述 JCL,則應以 MAXCC = 0 執行,並且它將建立 MY.VSAM.RRDSFILE VSAM 檔案。
刪除 RRDS 叢集
使用 IDCAMS 實用程式刪除 RRDS 叢集。DELETE 命令從目錄中刪除 VSAM 叢集的條目,並可選地刪除檔案,從而釋放物件佔用的空間。
DELETE data-set-name CLUSTER [ERASE / NOERASE] [FORCE / NOFORCE] [PURGE / NOPURGE] [SCRATCH / NOSCRATCH]
上述語法顯示了在刪除 RRDS 叢集時可以使用哪些引數。引數說明與 VSAM - 叢集模組中提到的相同。
示例
以下示例演示瞭如何在 JCL 中使用 IDCAMS 實用程式刪除 RRDS 叢集:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEPNAME EXEC PGM = IDCAMS //SYSPRINT DD SYSOUT = * //SYSIN DD * DELETE MY.VSAM.RRDSFILE CLUSTER /*
如果在大型機伺服器上執行上述 JCL,則應以 MAXCC = 0 執行,並且它將刪除 MY.VSAM.RRDSFILE VSAM 叢集。