当锁数超过限制时,COBOL-DB2程序的行为
问题:一旦放置在表空间上的锁的数量超过定义的限制,COBOL-DB2程序将如何工作?
解
在DSNZPARM中定义了应用程序可以在DB2资源(例如页面,表行等)上放置的锁数。一旦任何表中的页面和行级别锁的数量超过了允许的限制,就将进行锁升级。
在锁升级中,DB2释放它持有的页面或行级别的锁,并尝试获取表空间级别或更高级别的锁。在这种情况下,由于整个表空间已被锁定以进行处理,因此应用程序现在对DB2资源的访问/范围更广。
例如,如果下面有DB2ORDERS表。
如果COBOL-DB2程序正在针对谓词ORDER_TOTAL>1000和ORDER_DATE>15-10-2020更新此表。结果,COBOLDB2程序将锁放置在超过DSNZPARM中定义的最大限制的多行中,然后将发生锁升级。
在这种情况下,DB2将释放多行中持有的锁,并将锁放置在整个ORDERS表中。由于任何原因,如果DB2无法成功获取ORDERS表中的表锁,则会发生回滚,并且DB2将还原表中所做的所有更改。
热门推荐
10 周岁生日祝福语简短男孩
11 家庭新春聚餐祝福语简短
12 送你妹妹新婚祝福语简短
13 郭可盈老公生日祝福语简短
14 学生真挚的祝福语简短
15 为朋友订婚祝福语简短
16 兄弟的结婚祝福语简短
17 祝福语老人简短话语
18 年底拜年祝福语大全简短