[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
Environment:

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



 Description   

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.



 Comments   
Comment by Arjen Poutsma [ 25/Jan/12 ]

Fixed.

Comment by Arjen Poutsma [ 04/May/12 ]

Closing old issues

Generated at Sat Dec 16 05:12:47 UTC 2017 using JIRA 6.4.14#64029-sha1:ae256fe0fbb912241490ff1cecfb323ea0905ca5.