启用了cachedProducers的Spring JMS CachingConnectionFactory

时间:2017-04-26 03:03:38

标签: java jms ibm-mq spring-jms

我目前正在开发一个设置spring cachedConnectionFactory sessionCahceSize的项目,请提供有关为什么sessionCacheSize为1(3个目的地)为每个目的地注册1+(大约3个)JMS缓存消息生成器的原因的答案?

应用程序以事务处理模式运行,并发线程大小为1

我是否应该研究识别空闲缓存生产者和驱逐缓存生产者以进行优化的策略?

1 个答案:

答案 0 :(得分:0)

您不会在跟踪中显示线程名称,这使得调试更加困难。然而...

生产者/消费者缓存处于Session级别。如果要在多个线程上发送消息,则最终可以为每个缓存的会话使用缓存生成器。

  • 线程1检出会话是否发送(缓存新的生产者);重新检查会话。
  • 线程2检出同一会话;发送(使用缓存的生产者)。
  • 线程1检出不同的会话(因为第一个会话正在使用中);发送(为该dest /会话缓存新的生产者)。
  • 线程2检查会话
  

sessionCacheSize为3(适用于3个目的地)

它不起作用;会话与目的地无关;它们是一般会话,将为每个目的地缓存生产者。