如何在 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 参数用于未提交读取。

