« Return to Thread: Impact of jms thread count increase

Re: Impact of jms thread count increase

by IIT Software :: Rate this Message:

Reply to Author | View in Thread

An explanation how threads are used in SwiftMQ can be found here. Because of the async task based design there should be no thread of a pool go into a blocking state. The only reason why a thread could take longer to finish is during persistent operation against a JDBC store or on a outbound network write (pool jms.connection) on a slow network link (modem etc).

However, if you have many clients producing & consuming many messages, the number of task in the jms.session pool is high and increasing the number of threads may increase throughput. But more threads will also add more thread context switching. To verify whether jms.session needs more threads simply use SwiftMQ Explorer and check Threadpool Swiftlet / Usage. If the running thread count of jms.session is constantly at maximum, increase maximum threads.

Concurrent queue consumer will be best served by Local Clustering. This can double your throughput compared to multiple queue consumers.

 « Return to Thread: Impact of jms thread count increase