提交SQL连接对象是否不安全



我得到错误:

SQL State:  25001
Error Code: 20000
Message:    Cannot close a connection while a transaction is still active.

我之所以理解这一点,是因为当事务未提交或回滚时,我正在关闭数据库连接。

这应该很容易修复。但是,我使用的是连接池。因此,我真的不确定这个连接在哪里没有被提交。我只是想优雅地关闭连接池中的每个连接。

总是在关闭事务之前调用commit是否安全?

if (!connection.isClosed())
{
    connection.commit();
    connection.close();
}

解决此问题的另一种方法是仔细检查每个数据库操作,以确保连接已提交。这是一条安全的捷径吗?

记录并回滚。

永远不要盲目承诺。

连接池应该回滚与活动事务一起返回的任何连接。这里的想法是,当返回连接时,事务仍然处于活动状态的原因是借用线程出现了某种问题,没有正常完成其进程。

相关内容

  • 没有找到相关文章

最新更新