2011-02-25 71 views
4

是否可以使用bitronix.tm.resource.jdbc.PoolingDataSource而不使用使用bitronix事務管理器並使用獨立的JBossTS來代替?是否可以使用bitronix PoolingDataSource而不使用BTM?

對於數據庫訪問,我使用Hibernate,使用Spring的@Transactional註釋(或者具有類似實現的Spring的TransactionTemplate)完成事務劃分。 PoolingDataSource和獨立的JBossTS在測試中使用,但我不想放棄數據庫連接池。

如果這是不可能的,其他池數據源將適合在這裏? Some other question建議c3p0不是一個選項。這是真的嗎?

回答

2

不,這是不可能的,也不可能在事務管理器之間切換XA池,因爲沒有標準定義事務管理器和JDBC連接池之間的通信。至少這是短篇小說,長期一個是在這裏:在的JBossTS http://blog.bitronix.be/2011/02/why-we-need-jta-2-0/

AFAIK情況下,你唯一的選擇是使用JBossAS連接池,但它至少需要一個JCA運行時,它不會是一個小的成就,但肯定更多。

恐怕唯一現實的選擇是使用所有的BTM或JBossTS,沒有連接池或JBossTS與池,但在JBossAS內部。

+0

謝謝你的回答。我認爲可以在數據源中透明地完成池化(例如,「關閉」連接返回到池而不是被終止)。因此,如果給定的事務管理器可以使用任何普通的'DataSource',那麼應該是這樣的透明池化DS。 – 2011-03-23 08:21:31

+0

順便說一句,例如'oracle.jdbc.xa.client.OracleXADataSource'是一個'javax.sql.javax.sql.XADataSource'並且也是'javax.sql.ConnectionPoolDataSource'(這兩個接口都存在,因爲Java 1.4我認爲)。 – 2011-03-31 06:14:13

相關問題