Reputation: 147
I am using message-driven-channel-adapter to receive a xml message as a string from a weblogic JMS queue and then passing this messages to a spring integration channel for storing into database , transforming into a different xml and then sending the converted xml into another remote weblogic JMS Queue.
My doubt is , I have set concurrent-consumers="30" , max-concurrent-consumers="100" , idle-consumer-limit="50" is this correct ?
what is the correct value I have to set for concurrent-consumers, max-concurrent-consumers, idle-consumer-limit to get best performance in a production system, as well we will get more then 10K messages per minute in our production system.
<int-jms:message-driven-channel-adapter
id="jmsInputQueueAdaptor_DX" channel="requestChannel" connection-factory="connectionFactory" destination="cbcmInputQueue_DX"
error-channel="errorChannel"
concurrent-consumers="30"
max-concurrent-consumers="100"
idle-consumer-limit="50"
receive-timeout="500"
send-timeout="500"
acknowledge="auto"
/>
Upvotes: 0
Views: 2282
Reputation: 108
Your values seem to be a good start.
There are a lot of factors that goes into achieving the best/optimal performance. Like the speed of the XML conversions and the hardware (# of cores, CPU speed, etc.)
You really just have to test and find where your bottlenecks are. And if you are not fully utilizing the CPU, then add more consumers.
Upvotes: 2