配置为缓存大于 1 的 CachingConnectionFactory 和 PoolingConnectionFactory 之间有什么区别吗?
我在各种项目中都见过这两种情况,我想了解选择其中一个的理由。
配置为缓存大于 1 的 CachingConnectionFactory 和 PoolingConnectionFactory 之间有什么区别吗?
我在各种项目中都见过这两种情况,我想了解选择其中一个的理由。
这实际上取决于您的用例。
bittronix 工厂汇集连接并为每次使用提供不同的连接(并将其返回到池中)。
使用CachingConnectionFactory
单个连接并缓存会话、生产者、消费者。
如果您使用像 Bitronix(或 Atomikos)这样的可插入 XA 事务管理器,请使用它们的池实现而不是 Spring 的,因为它们执行额外的操作,例如在 XA 事务中自动登记资源。
Bitronix 池是:
值得看一下 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
这真是一个奇怪的问题。你需要XA吗?如果是,那么您别无选择,只能使用 PoolingConnectionFactory。你不需要XA吗?然后不要打扰 Bitronix 并使用 CachingConnectionFactory。