1队列中的同步和异步消息接收器(Spring和ActiveMQ)JMS API
问题描述:
我使用Spring JMS和ActiveMQ作为代理并在Tomcat上运行应用程序。 我有一个队列,让我们说queue.a。在我的网络应用程序中,每当我启动我的web应用程序时,我都已经有一个MessageListener运行。唯一的是,我想添加某种队列消费者,但同步。我已经尝试使用JmsTemplate等。但是,当我的两个消费者(侦听器异步&使用者同步)启动并且我触发.receive()方法时,发送到队列的消息总是吸收一直处于联机状态的消息侦听器自Web应用程序启动。超时结束后,同步接收器根本不消耗任何消息。1队列中的同步和异步消息接收器(Spring和ActiveMQ)JMS API
但是,当我注释掉messageListener时,同步客户运行良好。
我还是一个新手,你们有没有办法让我想要的可能?谢谢!对不起,我的英语不好:(
答
<bean id="someQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg index="0" value="TEST.QUEUE?consumer.priority=10" />
</bean>
,然后,将其设置到您的收听/接收器豆:
<bean id="someReceiver" class="blah.blah.SomeReceiver">
<property name="destination" ref="someQueue" />
<property name="jmsTemplate" ref="jmsTemplate" />
</bean>
这是否解决您的问题
您是否使用默认值在你的一切消费者和队列配置(预取,排他,优先等)? – 2014-09-30 13:25:12
我认为是的,因为我是在春季使用JMS新手..是否有任何方法来配置?它是否在bean配置?我只是按照一切文档和网络 – Nico 2014-10-01 01:41:11
这听起来非常像你有一个排除一位消费者。您是否在消费者上设置了类似以下内容的消息:YOUR.QUEUE?consumer.exclusive = true您是否验证过使用receive()的消费者在队列中具有句柄(消费者数+1)? – 2014-10-01 13:32:01