我有heard it said,當一個好的JDBC連接池返回一個連接回池時應該調用rollback
。目的是解決任何可能仍在等待交易。當將連接返回到池時,Tomcat JDBC連接池是否調用`rollback`?
Tomcat JDBC Connection Pool
Tomcat 8這樣做,或者做其他事情來清理任何懸而未決的事務嗎?
我試過閱讀the Tomcat 8.0.24 source code†。使用攔截器,代理,包裝和子類製作比我可以遵循的更多意大利麪條。我無法確定調用池連接的close
方法時的行爲,如使用try-with-resources代碼(AutoClosable
)的常見JDBC代碼一樣。
†apache-tomcat-8.0.24-src > modules > jdbc-pool > src > main > java > org > apache > tomcat > jdbc > pool
文件夾。
那麼,你會怎麼讀? 「不,默認情況下,Tomcat JDBC連接池不*回滾任何可能延遲的事務」? –
是的,用autoCommit == false池將包含打開的事務。 –