如何在 DB2 程式中實現 CS、RR、UR 和 RS 隔離級別?


隔離級別定義了在 COBOL-DB2 程式中訪問的 DB2 資料與另一個並行執行的 COBOL-DB2 程式隔離的程度。DB2 中有 4 種主要型別的隔離級別。

遊標穩定性 (CS) - 遊標穩定性隔離級別僅鎖定程式正在訪問的當前行。一旦程式移到下一行,前一行的鎖就會被釋放。遊標穩定性僅獲取已提交的行供程式訪問。這是預設的隔離級別。

讀穩定性 (RS) - 此隔離級別會對所有符合 SQL 語句謂詞(例如:WHERE 子句)的行進行加鎖。鎖將保留到整個處理完成。

未提交讀 (UR) - 未提交讀隔離級別用於僅用於讀取目的的 SQL 語句。不會對行/記錄進行加鎖,並且它會獲取已提交的行以及未提交的行(來自其他程式/事務)。

可重複讀 (RR) - 當我們需要保留鎖直到提交時,使用此隔離級別。

要為 COBOL-DB2 程式定義隔離級別,我們需要在 BIND 步驟的 ISOLATION 選項中使用相應的引數。以下是可以使用該引數定義隔離級別的 JCL 步驟。

//BIND EXEC PGM=IKJEFT01
//STEPLIB DD DSN=DIS.TEST.LOADLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(TB3)
BIND PLAN(PLANA) -
PKLIST(PACKA) -
ACQUIRE(ALLOCATE) -
ISOLATION (RS)
/*

在上述步驟中,我們使用了帶有 RS 引數的 ISOLATION 選項,它對應於讀穩定性。類似地,我們有用於遊標穩定性的引數 CS、用於可重複讀的引數 RR 和用於未提交讀的引數 UR。

更新於: 2020 年 9 月 11 日

6K+ 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.