Bitronix PoolingConnectionFactory vs SpringFramework CachingConnectionFactory

时间:2016-01-21 12:34:11

标签: jms connection-pooling spring-jms bitronix

配置为缓存大于1的CachingConnectionFactory和PoolingConnectionFactory之间是否有任何区别?

我已经在各种项目中看到过,我想了解选择其中一项的理由。

3 个答案:

答案 0 :(得分:0)

这实际上取决于您的使用案例。

bittronix工厂对连接进行池化,并为每次使用提供不同的连接(并将其返回到池中)。

CachingConnectionFactory使用单个连接并缓存会话,生产者和消费者。

答案 1 :(得分:0)

这真是一个奇怪的问题。你需要XA吗?如果是,那么你别无选择,只能使用PoolingConnectionFactory。你不需要XA?然后不要打扰Bitronix并使用CachingConnectionFactory。

答案 2 :(得分:0)

如果您使用可插入的XA事务管理器(如Bitronix(或Atomikos)),请使用其池实现而不是Spring,因为它们执行其他操作,如自动登记XA事务中的资源。

Bitronix池是:

  • 用于JDBC的bitronix.tm.resource.jdbc.PoolingDataSource
  • JMS的bitronix.tm.resource.jms.PoolingConnectionFactory

有关如何设置池的示例,请参阅Bitronix测试用例:

https://github.com/bitronix/btm/blob/master/btm/src/test/java/bitronix/tm/mock/JmsPoolTest.java

https://github.com/bitronix/btm/blob/master/btm/src/test/java/bitronix/tm/mock/JdbcPoolTest.java