Search code examples
springapache-cameloracle-aq

AQjmsFactory issue with Point-to-Point


I should connect to an Oracle AQ single consumer Point-to-Point queue by the AQjmsFactory.getConnectionFactory API (as stated by the Oracle documentation) using Spring/Camel frameworks.

The following error stack shows me that it tries to create a topic connection.

Could anybody tell me why?

Thank you so much!

org.springframework.jms.UncategorizedJmsException: Uncategorized exception occurred during JMS processing; nested exception is oracle.jms.AQjmsException: JMS-243: Argomento MY_QUEUE non trovato; nested exception is oracle.jms.AQjmsException: JMS-142: È necessario creare largomento JMS nelle tabelle di coda attivate per più consumatori
    at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316)
    at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:169)
    at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:487)
    at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:469)
    at org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:414)
    at org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:368)
    at org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:154)
    at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
    at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97)
    at org.apache.camel.component.dataset.DataSetConsumer.sendMessages(DataSetConsumer.java:89)
    at org.apache.camel.component.dataset.DataSetConsumer$1.run(DataSetConsumer.java:70)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: oracle.jms.AQjmsException: JMS-243: Argomento MY_QUEUE non trovato
    at oracle.jms.AQjmsError.throwEx(AQjmsError.java:374)
    at oracle.jms.AQjmsSession.createTopic(AQjmsSession.java:2723)
    at org.springframework.jms.support.destination.DynamicDestinationResolver.resolveTopic(DynamicDestinationResolver.java:72)
    at org.springframework.jms.support.destination.DynamicDestinationResolver.resolveDestinationName(DynamicDestinationResolver.java:55)
    at org.springframework.jms.support.destination.JmsDestinationAccessor.resolveDestinationName(JmsDestinationAccessor.java:114)
    at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$000(JmsConfiguration.java:458)
    at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$1.doInJms(JmsConfiguration.java:471)
    at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:484)
    ... 15 common frames omitted
Caused by: oracle.jms.AQjmsException: JMS-142: È necessario creare largomento JMS nelle tabelle di coda attivate per più consumatori
    at oracle.jms.AQjmsError.throwEx(AQjmsError.java:313)
    at oracle.jms.AQjmsSession.getTopic(AQjmsSession.java:5899)
    at oracle.jms.AQjmsSession.createTopic(AQjmsSession.java:2716)
    ... 21 common frames omitted

Solution

  • I solved on my own debugging the camel source code (due to an inherited legacy sources): it was an error on ActiveMQ component addressing "oracleaq:topic:MY_QUEUE" in place of "oracleaq:MY_QUEUE".