如何在 DB2 程序中实现 CS、RR、UR 和 RS 隔离级别?

db2databasebig data analytics

隔离级别定义了 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 参数用于未提交读取。


相关文章