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.
See http://forum.springframework.org/showthread.php?p=187209 and http://mail-archives.apache.org/mod_mbox/ws-axis-dev/200701.mbox/raw/%[email protected]ss.com%3E/3#rr-requester-request, stating
"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."