我嘗試使用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