昨天偶遇了HikariCP,研究了一晚上。我对微调其实现和设计所付出的大量细节和努力印象深刻。直截了当,我无法确定它实际上是如何处理那些autoCommit
设置为的连接被检入池中的false
,而它们既没有commit()
也没有rollback()
发出,例如,由于异常。对于下一个请求者来说,这可能是许多严重事务问题的根源,他们期望一个新的连接,但不幸的是接收到这个带有悬空事务状态的连接。
虽然 C3P0 和 Tomcat 的 JDBC 池为此目的(通过配置或拦截)有一些所谓的旋钮,但我在 HikariCP 的文档或支持组中找不到任何内容。如果我错了,请纠正我,但是编写一个简单的单元测试表明池对此没有任何作用。
我需要知道这个观察是否真的正确,我没有遗漏任何东西。此外,如果有任何计划在 HikariCP 中解决这个问题,因为这对我来说很重要。
谢谢。