Grails で ActiveMQ キューからメッセージを消費しようとしています。接続用にいくつかのSpring Beanを構成しましたが、これまでのところすべてうまく機能しています。
上記の 8を設定しようとすると、問題が発生しconcurrentConsumers
ます。1 つのクライアントに対して 8 が最大として設定されているようです。8 を超える数を設定しても、ActiveMQ エクスプローラーはキューに対して 8 つのコンシューマーを表示します。8 を超える異なるキューに対して 2 つのリスナーを構成するとconcurrentConsumers
、ActiveMQ によって表示されるコンシューマーの数は変化しますが、合計は常に 8 です。
私は何を間違っていますか?構成例は、最大 50 の concurrentConsumers を示しています...
これが私の設定で、groovy 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
}