JMS Queue is having 2 consumers, synchronous and asynchronous Java application process waiting for the response. 1)Synchronous application send request and will be waiting for the response for 60 seconds based on the JMS correlation ID. 2)Asynchronous thread will be constantly listening on the same queue.
In this scenario, when the response is received on the queue within 60 second I would expect load is distributed on both synchronous and asynchronous application. However, for some unknown reason almost all the response messages are consumed by synchronous process. And,only in some cases the messages are picked up asynchronous process.
Are there any factors that could cause only synchronous application to pick almost all the messages?