When using a permanent response queue, the client-side JMS transport currently selects the first available messages on said queue. This is undesired behavior.
Instead, we should use a message selector to receive responses which have a correlation id that is equal to the request message. This is only required for permanent queues; temporary queues don't have this problem.
"A correlated response message is one where the value of the JMSCorrelationID header field is the same as the value of the JMSMessageID of the request message."