DB2锁永远存在

时间:2017-02-09 02:38:47

标签: java jdbc db2 db2-luw locks

我有一个连接到DB2 10.5的应用程序。发出从DB中选择和加载数据。对于不同的表,数据在200到400k记录的范围内。 当我运行命令检查锁时,接近数据库加载活动的结束(进程仍处于活动状态,但数据库加载完成)。我看到一些锁(很大程度上是共享的)与这些表中的一些相关联,并且它们一直存在,直到我终止客户端进程。

我正在使用jdbc连接并从DB2加载。我做的另一件事是在DB2上启用跟踪以检查SQL的运行情况。观察到的一件有趣的事情是,对于某些表,我没有在光标上看到“关闭”操作。 对于我看到的大多数查询,“准备”,“描述”,“打开”和“关闭”按顺序发生,但对于某些表,我没有看到“关闭”事件。

我使用auto-commit = false创建连接。所以,我尝试通过客户端代码发布手动提交,发布每个查询,但这也没有帮助。而且,这些是简单的选择查询。所以不确定为什么会发生这种情况。

更多, 基于注释的具体问题 - 为什么即使在执行完成后,我还会看到Select查询的挂起?它们仅在我终止客户端应用程序时才会被释放。

有关实现的详细信息 - 使用连接池,使用autocommit = false创建连接。对于每个查询,序列是从池中获取,执行查询并返回池。所以从本质上讲,这种联系仍然存在。

TIA, 维基

0 个答案:

没有答案