(Fixed?) Updated - Help w/ Oracle JMS and AQjmsException (JMS-147)
Has anyone experienced this error while using Camel deployed into an OC4J container? I am encountering this exception while executing a route defined as:
from("jms:queue:foo").multicast().to("jms:queue:bar", "jms:queue:blah")
Following is the stacktrace and the inbound message header key/values.
The stacktrace...
2008-06-18 14:19:25,187 [enerContainer-2] ERROR DeadLetterChannel - Failed delivery for exchangeId: ID-VZ-SWL/4167-1213813164062/0-4. On delivery a
ttempt: 0 caught: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is oracle.jms.AQjms
Exception: JMS-147: Invalid ReplyTo destination type, or use of reserved `JMSReplyTo agent name, or serialization error with AQjmsDestination
org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is oracle.jms.AQjmsException: JMS-147
: Invalid ReplyTo destination type, or use of reserved `JMSReplyTo agent name, or serialization error with AQjmsDestination
at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:289)
at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:462)
at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:535)
at org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:120)
at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsynProcessorBridge.process(AsyncProcessorTypeConverter.java:44)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:73)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:44)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:57)
at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:48)
at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsynProcessorBridge.process(AsyncProcessorTypeConverter.java:44)
at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:143)
at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:87)
at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:40)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:44)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:68)
at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:66)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:531)
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:466)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:322)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:260)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:944)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:875)
at java.lang.Thread.run(Thread.java:595)
Caused by: oracle.jms.AQjmsException: JMS-147: Invalid ReplyTo destination type, or use of reserved `JMSReplyTo agent name, or serialization error with AQjmsDes
tination
at oracle.jms.AQjmsError.throwEx(AQjmsError.java:285)
at oracle.jms.AQjmsMessage.setJMSReplyTo(AQjmsMessage.java:523)
at oracle.j2ee.ra.jms.generic.MessageWrapper.setJMSReplyTo(MessageWrapper.java:135)
at org.apache.camel.component.jms.JmsBinding.appendJmsProperties(JmsBinding.java:157)
at org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:127)
at org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:122)
at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:557)
at org.springframework.jms.core.JmsTemplate$4.doInJms(JmsTemplate.java:538)
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:459)
... 24 more
And the headers...
{JMS_OracleOriginalMessageID=null, JMS_OracleHeaderOnly=null, org.apache.camel.RedeliveryCounter=1, JMSType=sometype, JMSReplyTo=null, JMS_OracleConnectionID=null, JMSXState=0, JMS_OracleTimestamp=1213813165109, JMSDestination=oracle.j2ee.ra.jms.generic.AdminObjectQueueImpl[foo], JMSRedelivered=false, JMSDeliveryMode=2, JMSMessageID=ID:C98CD9B72DE043A187907C4E7EDED473, JMSCorrelationID=null, JMSXDeliveryCount=1, JMSTimestamp=1213813165109, JMSXGroupSeq=null, JMS_OracleDelay=0, JMS_OracleDeliveryMode=2, JMSXGroupID=null, JMS_OracleExcpQ=null, JMSExpiration=0, JMSXUserID=JMSUSER, JMSXRecvTimestamp=1213813165140, org.apache.camel.Redelivered=true, JMSXAppID=null, JMSPriority=1}