我正在尝试在遗留系统中使用 HikarCP。我将 autocommit 配置为 false,这正是我们想要的,并意识到我的日志充满了
[c.z.h.p.ProxyConnection][ProxyConnection.java:232] ora - Executed rollback on connection net.sf.log4jdbc.ConnectionSpy@3f2bba67 due to dirty commit state on close().
Run Code Online (Sandbox Code Playgroud)
当在发出查找程序查询后关闭从池中获取的连接时,就会发生这种情况。在连接生命周期内不会发生插入/更新/删除。这是选择查询的方式吗?每次选择后我应该做一次 COMMIT 吗?
小智 6
是的,你应该承诺。甚至 SELECT 查询也会启动事务并获取锁。特别是具有不同的隔离级别,甚至取决于数据库,即使是 TRANSACTION_READ_COMMITTED。
当 autocommit 为false时,HikariCP 将非显式提交视为应用程序错误。其他一些池支持配置“commit-on-close”,但 HikariCP 认为这是有风险的,并且是支持从未正确编写的应用程序的黑客。
JDBC 规范明确没有说明没有自动提交的连接是否应该自动提交或回滚。这是驱动程序开发人员留下的实现细节。
| 归档时间: |
|
| 查看次数: |
7277 次 |
| 最近记录: |