在 SQL 执行期间,实现 COBOL-DB2 中的表级别锁


DB2 中会对表和表空间加锁,以避免因丢失更新、脏读和幻读而导致的问题。

我们需要使用 ACQUIRE 选项在 BIND 包/计划步骤期间定义锁参数。

COBOL-DB2 程序 PROGA 使用 SQL 语句访问表 TA。如果需要在程序中执行特定 SQL 语句时才对表加锁,则需要如下定义 BIND 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(USE) -
/*

必须在 BIND PLAN 步骤中将选项 ACQUIRE 与 USE 参数一起使用。这会指示 DB2 在程序中执行使用该表的 SQL 语句时对 DB2 表加锁。

更新于:2020 年 9 月 11 日

885 次浏览

启动您的 新的职业生涯

通过完成课程,获得认证

开始
广告