[SWS-742] JMSCorrelationID together with Oracle AQ Created: 20/Dec/11  Updated: 04/May/12  Resolved: 25/Jan/12

Status: Closed
Project: Spring Web Services
Component/s: Core
Affects Version/s: 2.0.3
Fix Version/s: 2.0.4

Type: Bug Priority: Major
Reporter: Marakov Andrey Assignee: Arjen Poutsma
Resolution: Fixed Votes: 0
Labels: feature-support, third-party-compatibility
Remaining Estimate: Not Specified
Time Spent: 1h 10m
Original Estimate: Not Specified

spring-ws-2.0.3.RELEASE, spring-framework-3.1.0.RC1, AQAPI12_BUILT_WITH_RDBMS_VERSION_10.2


In org.springframework.ws.transport.jms.JmsSenderConnection.onReceiveBeforeRead() the following code set the value of messageSelector:

if (responseDestination instanceof TemporaryQueue || responseDestination instanceof TemporaryTopic) {
       messageConsumer = session.createConsumer(responseDestination);
} else {
       String messageId = requestMessage.getJMSMessageID().replaceAll("'", "''");
       String messageSelector = "JMSCorrelationID = '" + messageId + "'";
       messageConsumer = session.createConsumer(responseDestination, messageSelector);

If I'm using Oracle AQ, expression (responseDestination instanceof TemporaryQueue) always returns true (See Oracle Streams Advanced Queuing Java API Reference http://docs.oracle.com/cd/B19306_01/server.102/b14291/oracle/jms/AQjmsDestination.html). Regarding this it is impossible to use JMSCorrelationID together with Oracle AQ.

Comment by Arjen Poutsma [ 25/Jan/12 ]


Comment by Arjen Poutsma [ 04/May/12 ]

Closing old issues

Generated at Sat Jul 21 17:42:50 UTC 2018 using JIRA 7.9.0#79000-sha1:3ca552e944c2fe83b21589bc06f155b9b428cc2b.