2015-08-12 121 views
3

我有heard it said,當一個好的JDBC連接池返回一個連接回池時應該調用rollback。目的是解決任何可能仍在等待交易。當將連接返回到池時,Tomcat JDBC連接池是否調用`rollback`?

Tomcat JDBC Connection PoolTomcat 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文件夾。

回答

1

爲什麼要閱讀的來源,當你可以閱讀the documentation

rollbackOnReturn

(布爾)如果自動提交== false,則池可以通過調用連接上回退,因爲它是返回到池默認值爲false終止交易。

+0

那麼,你會怎麼讀? 「不,默認情況下,Tomcat JDBC連接池不*回滾任何可能延遲的事務」? –

+0

是的,用autoCommit == false池將包含打開的事務。 –