Return-Path: Delivered-To: apmail-camel-dev-archive@www.apache.org Received: (qmail 66902 invoked from network); 5 Jul 2010 15:03:48 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 5 Jul 2010 15:03:48 -0000 Received: (qmail 59172 invoked by uid 500); 5 Jul 2010 15:03:48 -0000 Delivered-To: apmail-camel-dev-archive@camel.apache.org Received: (qmail 59121 invoked by uid 500); 5 Jul 2010 15:03:47 -0000 Mailing-List: contact dev-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list dev@camel.apache.org Received: (qmail 59113 invoked by uid 500); 5 Jul 2010 15:03:47 -0000 Delivered-To: apmail-activemq-camel-dev@activemq.apache.org Received: (qmail 59110 invoked by uid 99); 5 Jul 2010 15:03:47 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 Jul 2010 15:03:47 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 Jul 2010 15:03:44 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id o65EtqJh008076 for ; Mon, 5 Jul 2010 14:55:53 GMT Message-ID: <24398068.32301278341752687.JavaMail.jira@thor> Date: Mon, 5 Jul 2010 10:55:52 -0400 (EDT) From: "Max Matveev (JIRA)" To: camel-dev@activemq.apache.org Subject: [jira] Commented: (CAMEL-2909) Oracle AQ does not support the JMSReplyTo property and therefore throws a "JMS-102: Feature not supported" exception when the JMS provider tries to get it. In-Reply-To: <3238147.32261278339113017.JavaMail.jira@thor> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: ae95407df07c98740808b2ef9da0087c X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/activemq/browse/CAMEL-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=60427#action_60427 ] Max Matveev commented on CAMEL-2909: ------------------------------------ I'm using Oracle AQ 10.2.0.2, reproduced this error on Windows XP and RHEL 5 linux. This exception will appear in few different places, namel everywhere where jmsMessage.getReplyTo() is called. For example in public Map extractHeadersFromJms(Message, Exchange) method in JmsBinding class (line number 174 in 2.3.0 version): map.put("JMSReplyTo", jmsMessage.getJMSReplyTo()); Stacktrace is the following: org.apache.camel.RuntimeCamelException: oracle.jms.AQjmsException: JMS-102: Feature not supported at org.apache.camel.component.jms.JmsBinding.extractHeadersFromJms(JmsBinding.java:181) at org.apache.camel.component.jms.JmsMessage.populateInitialHeaders(JmsMessage.java:191) at org.apache.camel.impl.DefaultMessage.createHeaders(DefaultMessage.java:178) at org.apache.camel.component.jms.JmsMessage.ensureInitialHeaders(JmsMessage.java:176) at org.apache.camel.component.jms.JmsMessage.setHeader(JmsMessage.java:152) at org.apache.camel.processor.RedeliveryErrorHandler.incrementRedeliveryCounter(RedeliveryErrorHandler.java:524) at org.apache.camel.processor.RedeliveryErrorHandler.handleException(RedeliveryErrorHandler.java:294) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:101) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:89) at org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228) at org.apache.camel.processor.Pipeline.process(Pipeline.java:75) at org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70) at org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:84) at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:543) at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:482) at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:451) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323) at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974) at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876) at java.lang.Thread.run(Thread.java:619) Caused by: oracle.jms.AQjmsException: JMS-102: Feature not supported at oracle.jms.AQjmsError.throwEx(AQjmsError.java:288) at oracle.jms.AQjmsAdtMessage.getJMSReplyTo(AQjmsAdtMessage.java:145) at org.apache.camel.component.jms.JmsBinding.extractHeadersFromJms(JmsBinding.java:174) ... 24 more I meant Camel JMS Component, not Provider, sorry. For your reference: similar bug was in Mule framework: http://www.mulesoft.org/jira/browse/MULE-489 and it was fixed by ignoring this exception for Oracle AQ. Related config is: AqDestinationResolver is DestinationResolver thaht supports AQ's Owner property, actually there is 1 line of code there: public class AqDestinationResolver implements DestinationResolver { private String ownerName; public void setOwnerName(String ownerName) { this.ownerName = ownerName; } public Destination resolveDestinationName(Session session, String destinationName, boolean pubSubDomain) throws JMSException { return ((AQjmsSession) session).getTopic(ownerName, destinationName); } } AqJmsConfiguration class extends camel' JmsConfiguration class by adding support for custom MessageListenerContainer, it is needed to support Oracle AQ Payload Factory public class AqJmsConfiguration extends JmsConfiguration { @Override public AbstractMessageListenerContainer createMessageListenerContainer(JmsEndpoint endpoint) { AbstractMessageListenerContainer messageListenerContainer = new AqMessageListenerContainer(); configureMessageListenerContainer(messageListenerContainer, endpoint); return messageListenerContainer; } } and AqMessageListenerContainer is public class AqMessageListenerContainer extends DefaultMessageListenerContainer { @Override protected MessageConsumer createConsumer(Session session, Destination destination) throws JMSException { TopicSubscriber consumer = ((AQjmsSession) session).getDurableSubscriber((Topic) destination, getDurableSubscriptionName(), new OraOratorQueueMessage()); return consumer; } } Sorry, cannot find related Oracle docs. > Oracle AQ does not support the JMSReplyTo property and therefore throws a "JMS-102: Feature not supported" exception when the JMS provider tries to get it. > ----------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: CAMEL-2909 > URL: https://issues.apache.org/activemq/browse/CAMEL-2909 > Project: Apache Camel > Issue Type: Bug > Components: camel-jms > Affects Versions: 2.3.0 > Reporter: Max Matveev > > Oracle AQ does not support the JMSReplyTo property and therefore throws a "JMS-102: Feature not supported" exception when the JMS provider tries to get it. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.