我正在使用spring DefaultMessageListenerContainer创建一个JMS主题客户端。以下是示例代码
DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.setDestinationName("topic.monitor");
container.setPubSubDomain(true);
container.setCacheLevel(3);
container.setRecoveryInterval(2000);
container.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);
container.setMessageListener(...)
据我所知,客户端无法在“AUTO_ACKNOWLEDGE”模式下接收重复消息(尽管消息可能会丢失)。但我随机收到重复的邮件。我想知道它会怎么样? onMessage方法是否是线程安全的?
任何人都可以提供一些可能出现问题的提示吗?
提前致谢。
答案 0 :(得分:0)
我找到了答案。在" AUTO_ACKNOWLEDGE"中没有偏离JMS行为。模式,客户端只收到一条消息。 问题是有两个" DefaultMessageListenerContainer"在特定时刻被调用,然后有两条消息开始到达。