请一些帮助了解以下内容:
我使用CachingConnectionFactory
在我的应用程序,并在我的测试中JMS首先用它来测试我的JMS配置一样保证的交付,回滚/提交等。
我使用Spring的JmsTemplate
发送和DefaultMessageListenerContainer
在分娩过程中。
我注意到这一点使用几种测试方法运行的顺序实施例时是硬/不可能的:在消息侦听(消费者侧)测试方法AI抛出异常,使得发生的重试。 然后检验B运行和方法AI做了不同的测试,但是当我开始这个测试我仍然可以重新尝试从测试A,这我清楚地不想要的消息。 我清除队列通过测试之间的JMX,但仍收到这些重试:(...我搜索和调试......我完全不明白为什么这些重试正在添加保持向上,即使我敢肯定,净化出现正确。也许有人已经在会话缓存的地方......我不知道。任何人任何想法?
我发现我需要使用
SingleConnectionFactory
测试期间。 有了这个连接工厂的重试消失,但我真的不明白为什么。 为什么? 据我所知,它仅使用一个连接(从春季REF),并注意到它在某种程度上消除了消费者后,每发送动作,但我实在不明白这些重发生什么:?(...任何想法(这是很难调试由于多线程行为,难以找到它在网络上良好的信息),而且使用CachingConnectionFactory
与1只有一个会话高速缓存的大小并没有解决重试的问题。
谢谢