可以使用 onstat -k 命令打印活动锁的信息,包括锁表中的该锁的地址。
可用锁的最大数量由 onconfig 文件中的 LOCKS 配置参数进行指定。
图: onstat -k 命令输出
Locks address wtlist owner lklist type tblsnum rowid key#/bsiz a095f78 0 a4d9e68 0 HDR+S 100002 203 0 1 active, 2000 total, 2048 hash buckets, 0 lock table overflows
Locks address wtlist owner lklist type tblsnum rowid key#/bsiz a1993e8 0 5c2f03d0 a19be30 S 2 1c05a 0
如果用户线程正在等待该锁,那么锁的地址出现在 onstat -u (用户)输出的 wait 字段中。
此地址对应于 onstat -u (用户)输出的 address 字段中的地址。当 owner 值显示在括号中时,它代表事务结构的共享内存地址。只有锁是为全局事务而分配时,才会出现这种情况。该地址对应于 onstat -G 的输出的地址字段
Rowid 提供以下锁的信息:
如果该字段包含 'K-' ,后跟值,那么是键锁。值标识哪个索引正在被锁定。例如:K-1 表示对表所定义的第一个索引上的锁。