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 叢集。

廣告