可以查看有关会话、锁定使用情况和锁定等待的信息。
如果应用程序执行 SET LOCK MODE TO WAIT,那么数据库服务器将等待锁被释放,而不是返回一条错误。异乎寻常的长时间等待锁会给用户造成应用程序挂起的印象。
onstat -u
Userthreads
address flags sessid user tty wait tout locks nreads nwrites
40072010 ---P--D 7 informix - 0 0 0 35 75
400723c0 ---P--- 0 informix - 0 0 0 0 0
40072770 ---P--- 1 informix - 0 0 0 0 0
40072b20 ---P--- 2 informix - 0 0 0 0 0
40072ed0 ---P--F 0 informix - 0 0 0 0 0
40073280 ---P--B 8 informix - 0 0 0 0 0
40073630 ---P--- 9 informix - 0 0 0 0 0
400739e0 ---P--D 0 informix - 0 0 0 0 0
40073d90 ---P--- 0 informix - 0 0 0 0 0
40074140 Y-BP--- 81 lsuto 4 50205788 0 4 106 221
400744f0 --BP--- 83 jsmit - 0 0 4 0 0
400753b0 ---P--- 86 worth - 0 0 2 0 0
40075760 L--PR-- 84 jones 3 300b78d8 -1 2 0 0
13 active, 128 total, 16 maximum concurrent
onstat -k
Locks
address wtlist owner lklist type tblsum rowid key#/bsiz
300b77d0 0 40074140 0 HDR+S 10002 106 0
300b7828 0 40074140 300b77d0 HDR+S 10197 122 0
300b7854 0 40074140 300b7828 HDR+IX 101e4 0 0
300b78d8 40075760 40074140 300b7854 HDR+X 101e4 100 0
300b7904 0 40075760 0 S 10002 106 0
300b7930 0 40075760 300b7904 S 10197 122 0
6 active, 5000 total, 8192 hash buckets
要找到会话标识 84 正在等待的锁定的所有者,请执行下列操作:
要消除争用问题,您可以让用户平稳地退出应用程序。 如果这种方法还无法解决问题,您可以停止应用程序进程,或者使用 onmode -z 除去会话。