2011-02-25 28 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

相关问题