如何实现仅当执行使用TA的SQL语句(在PROGA中)时才能获得对表TA的锁定的COBOL-DB2程序PROGA?

在表和表空间上获取DB2中的锁,以避免由于LOST UPDATE,DIRTY READ和PHANTOM引起的问题。

我们需要在BIND封装/计划步骤中使用ACQUIRE选项定义lock参数。

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参数一起使用。当在程序中执行使用该表的SQL语句时,这将指示DB2在DB2表上放置锁。

猜你喜欢