我尝试使用grails中的ActiveMQ队列消息。我为连接配置了一些弹簧豆,并且一切都很好。concurrentMonsumers为ActiveMQ队列
当我尝试将concurrentConsumers
设置为8以上时,问题就开始了。看起来8被设置为一个客户端的最大值 - 如果我配置了8个以上,ActiveMQ浏览器仍然显示8个消费者队列。如果我为超过8个不同队列配置两个监听器,其中显示的消费者数量超过8个,但总和总是8.
我在做什么错?配置示例显示多达50 concurrentConsumers ...
这里是我的配置,写成常规DSL,我想这是读它没有问题... ...
jmsFactory(org.apache.activemq.pool.PooledConnectionFactory) { bean ->
bean.destroyMethod = "stop"
connectionFactory = { org.apache.activemq.ActiveMQConnectionFactory cf ->
brokerURL = "tcp://localhost:61616"
}
}
jmsTemplate(org.springframework.jms.core.JmsTemplate) {
connectionFactory = jmsFactory
}
jmsMessageListener(org.springframework.jms.listener.adapter.MessageListenerAdapter, ref("messageService")) {
defaultListenerMethod = "onMessage"
}
jmsContainer(org.springframework.jms.listener.DefaultMessageListenerContainer) {
connectionFactory = jmsFactory
concurrency="10"
concurrentConsumers="15"
destinationName = "demoQueue"
messageListener = jmsMessageListener
transactionManager = ref("transactionManager")
autoStartup = false
}
jmsMessageListener2(org.springframework.jms.listener.adapter.MessageListenerAdapter, ref("messageService")) {
defaultListenerMethod = "onMessage2"
}
jmsContainer2(org.springframework.jms.listener.DefaultMessageListenerContainer) {
connectionFactory = jmsFactory
destinationName = "demoQueue2"
messageListener = jmsMessageListener2
transactionManager = ref("transactionManager")
autoStartup = false
}
不确定它是否有帮助,但您应该设置“并发性”或“concurrentConsumers/maxConcurrentConsumers”,因为它们重叠。 concurrency =“10-15”将设置concurrentConsumers = 10,maxConcurrentConsumers = 15等。 – 2012-08-15 04:40:18
thanx。给它一个尝试 - 没有什么改变...... :-( – rdmueller 2012-08-15 06:27:45
连接到jconsole到activemq,看看这是否与activemq的web控制台中的不匹配,在消费者数量上没有任何定义活动mq中的8个消费者最大值或春天,据我所知,否则,我不知道 – 2012-08-15 13:06:43