2016-12-01 288 views
1

我讀Java持久性與Hibernate,我發現下面的文字。像Atomikos這樣的JTA提供者和像HikariCP這樣的連接池之間的關係是什麼?

今天,高品質的獨立的JTA商如Bitronix(用於本書的示例代碼)和Atomikos公司都可以和容易任何Java環境中安裝。將這些解決方案視爲啓用JTA的數據庫連接池

據我瞭解,JTA商有自己的連接池。

所以,他們做集成(如何,如果他們這樣做)與連接池一樣HikariCP和C3P0?謝謝。

回答

3

答案是NO ,你不能用這些JDBC連接池JTA商結合起來。

簡短的原因是: JTA提供程序需要XADataSource,您指定的JDBC連接池只有標準DataSource

更長的原因是: 與您想要處理的JTA提供商全球交易 - 全球意味着通過不同的數據源。 (例如,您的操作想做一件事數據庫/數據源1和東西在數據庫/數據源2 - 如果這些部件中的一個失敗了,你想兩個部分得到回滾彷彿一切都沒有發生過這兩個數據庫/數據源)這樣做是通過兩階段提交,這需要一個XADataSource。 對於僅使用一個DataSource的應用程序,您的JDBC連接池是輕量級的 - 對於此應用程序,您不需要JTA(當然,即使您可以使用它們)。

+0

感謝。那麼,我們應該如何使用Spring Boot應用程序,它適用於一個DataSource,並且我們希望使用聲明式tx管理器? – Taras

+0

@Taras定期連接池和spring的事務。 – Kayaman

+0

Gotcha。謝謝,@Kayaman。 – Taras

相關問題