0

配置为缓存大于 1 的 CachingConnectionFactory 和 PoolingConnectionFactory 之间有什么区别吗?

我在各种项目中都见过这两种情况,我想了解选择其中一个的理由。

4

3 回答 3

0

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

bittronix 工厂汇集连接并为每次使用提供不同的连接(并将其返回到池中)。

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

于 2016-01-21T14:26:13.227 回答
0

如果您使用像 Bitronix(或 Atomikos)这样的可插入 XA 事务管理器,请使用它们的池实现而不是 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

于 2016-02-23T10:33:23.680 回答
0

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

于 2016-01-21T17:42:40.030 回答