如何在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)
/*

在上面的步骤中,我们将ISOLATION选项与RS参数一起使用,这对应于读取稳定性。同样,对于游标稳定性,我们有参数CS;对于可重复读取,有RR;对于未提交的读取有UR。