[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 Mon Oct 22 18:29:02 UTC 2018 using JIRA 7.9.2#79002-sha1:3bb15b68ecd99a30eb364c4c1a393359bcad6278.