字段名
•
要被锁定的键必须在这里传递。
•
另一个参数X_ 定义了当每个锁字段 传递初始 值时锁的行为。如果给 和X_ 指定了初始值, 关于 的通用锁就会被初始化。如果 指定了初 始值而X_ 为X,锁就设置 为它实际的初始值。
–
传输锁的参数
•
当事务结束或者相应的DEQUEUE 函数模块被调用,锁就被 移除。然而,如果事务调用了更新子程序的话就不是这样 了,这时,参数必须检查锁是否已经被移除。
传输锁的参数
•
参数_SCOPE 控制了锁或者锁释放如果被传递给更新程序, 有以下选择:
–
_SCOPE = 1:锁和锁释放不传递给更新程序。当事务结束时锁 被移除。
–
_SCOPE = 2:锁或锁释放传递给更新程序。更新程序负责移除 锁。请求了锁的交互式程序不再对锁行为有影响。这是 ENQUEUE 函数模块的标准设置。
–
_SCOPE = 3:锁或锁释放也传递给更新程序。锁必须从交互式 程序和更新程序中同时移除。这是DEQUEUE 函数模块的标准 设置。
锁模式参数
•
参数MODE_ 定义了锁对象里的每个基础表tab。对于 这个基础表的锁模式可以用这个参数动态设置。这个参数的 可用值包括S(共享)、E(排他)、X(排他但不累积)。 在锁对象中创建表时指定的锁模式就是这个参数的缺省值, 但是如果有必要的话,这个缺省值可以在函数模块被调用时 被覆盖。
•
如果带有锁模式的锁通过调用函数模块DEQUEUE 被移除, 这个调用必须具有跟参数MODE_ 相同的值。
控制锁传输
•
参数_COLLECT 控制了锁请求或锁释放应该是直接执行还是 应该先被写入本地锁容器。这个参数具有下列值:
–
初始值:锁请求或锁释放被直接发送给锁服务器。
–
X:锁请求或锁释放被放在本地锁容器中。收集在这个锁容器中 的锁请求和锁释放可以在以后调用函数模块 FLUSH_ENQUEUE 时成组的发送给锁服务器。锁限制的行为(只对ENQUEUE)
•
ENQUEUE 函数模块还有一个参数_WAIT。这个参数决定了 当锁被限制时的行为。有以下选择:
–
初始值:如果锁尝试由于一个冲突锁而失败了,就会触发 FOREIGN_LOCK 的异常。
–
X:如果锁尝试由于一个冲突锁而失败了,锁尝试会等待一段时 间后再试。只有在首次锁尝试过后一定时间后才会触发 FOREIGN_LOCK 异常。等待时间和时间限制都由特征参数来 定义。
控制锁条目的删除(只对DEQUEUE)
•
DEQUEUE 还有一个参数_SYNCHRON,用来监控锁条目被 删除时的行为。
–
如果传递了X,DEQUEUE 函数会一直等待,直到条目被从锁 表中移除。
–
否则,它就异步删除,就是说,如果系统的锁表在锁被移除后 直接读取,锁表的条目可能依然存在。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/190059/viewspace-476617/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/190059/viewspace-476617/