我正在AIX上运行Informixv12.10。在以用户informix身份登录时,我遇到的问题。我将在SQL中运行一个简单的查询,例如“从海洋中选择颜色;”
这显然会在那个表上放置一个打开的光标锁--太好了。现在,要确定锁是否实际在表上,我使用:
onstat -g opn > filename.txt将输出重定向到一个文件,这样我们就可以筛选它。然后
cat filename.txt | grep -p hexnumber其中hexnumber是表的十六进制数。然后我让用户用
onstat -u | grep session id现在,锁由用户informix持有,当我关闭会话并等待任何时间并重新执行处理时,锁将保持不变。
请告知此锁为何未被释放。
发布于 2017-11-04 16:57:29
当后端Informix会话终止时,对表的引用将消失。
你所说的“结束会议”是什么意思?
如果您只是关闭应用程序,而应用程序没有关闭连接,则会话可以活动一段时间。
一旦服务器收到客户端消失的错误,服务器仍将不得不回滚任何活动事务(使用GB的活动事务可能需要几个小时!)。
事务回滚完成后,服务器将清除/释放活动游标/准备好的sql语句,然后服务器会话将消失。
您可以在会话线程上使用onstat -g ses和onstat -g stk来查看正在发生的事情。
发布于 2017-08-21 09:52:36
正在打开的桌子不是锁。带有明显的“自我推销”警告,我建议您使用"ixtableuse“(https://github.com/domusonline/InformixScripts/blob/master/scripts/ix/ixtableuse)。例如,如果有任何阻止ALTER的东西,它应该会给您提供信息。
如果你觉得它没用,请告诉我为什么。如果你觉得它有用,但你发现任何问题,请做同样的。
https://stackoverflow.com/questions/45756552
复制相似问题