设置用来存储地理数据库的大多数 IBM Db2 参数都与锁定相关。
死锁可能很常见,具体取决于客户端应用程序和数据库配置。请注意,该问题可能随状态谱系的加深而变得严重。Db2 提供了多个调整参数来对以下内容进行控制:锁列表 (LOCKLIST) 的大小、一个应用程序可保存的锁的最大百分比 (MAXLOCKS)、一个请求等待获取锁的时长 (LOCKTIMEOUT)、死锁检测的频率间隔 (DLCHKTIME) 和死锁回滚行为 (DB2LOCK_TO_RB)。
LOCKLIST 和 MAXLOCKS 的默认值是 AUTOMATIC,可使这些参数进行自我调整。这使得 Db2 内存调谐器可以在不同的内存使用者之间动态调整内存资源的大小。仅在数据库启用了自我调整内存的情况下才会发生自动调整 (SELF_TUNING_MEM=ON)。
要查看锁定列表设置,请执行以下命令:
db2 get db cfg
Max storage for lock list (4KB) (LOCKLIST) = 50
Interval for checking deadlock (ms) (DLCHKTIME) = 10000
Percent. of lock lists per application (MAXLOCKS) = 22
Lock time out (sec) (LOCKTIMEOUT) = -1
Max number of active applications (MAXAPPLS) = AUTOMATIC
- LOCKTIMEOUT
要设置 Db2 在尝试获取锁时将等待的时间量,可修改 LOCKTIMEOUT。
- DLCHKTIME
要调整每次死锁检测的检查时间间隔,可调整 DLCHKTIME。
- DB2LOCK_TO_RB
DB2LOCK_TO_RB 用于指定当等待锁的时间量超过 LOCKTIMEOUT 时事务的行为。默认情况下,锁定超时会回滚请求事务。默认行为应对 Db2 中的地理数据库足够可用。
对于 DB2LOCK_TO_RB 注册表值,请使用 db2set 并查找 DB2LOCK_TO_RB=。
有关设置这些参数的信息,请参阅 IBM Knowledge Center 中的 Db2 文档。