如何在 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.