I'm trying to configure Oracle AQ with WSO2 Micro Integrator 4.2.0. I created oracle Queue and I was able to send and messages there. Howver when I tried to configure it with WSO2 MI and trying to send message using Proxy service I'm getting the below error.
ERROR {JMSConnectionFactory} - Error looking up the JMS destination with name Queues/Q of type queue javax.naming.NamingException: Cannot resolve name:Queues/Q [Root exception is oracle.jms.AQjmsException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
https://docs.oracle.com/error-help/db/ora-28009/]
at oracle.jms.AQjmsContext.lookup(AQjmsContext.java:172)
at java.naming/javax.naming.InitialContext.lookup(InitialContext.java:409)
at org.apache.axis2.transport.jms.JMSUtils.lookup(JMSUtils.java:799)
at org.apache.axis2.transport.jms.JMSUtils.lookupDestination(JMSUtils.java:1027)
at org.apache.axis2.transport.jms.JMSConnectionFactory.getDestination(JMSConnectionFactory.java:306)
at org.apache.axis2.transport.jms.JMSMessageSender.setDestination(JMSMessageSender.java:197)
at org.apache.axis2.transport.jms.JMSMessageSender.initProducer(JMSMessageSender.java:156)
at org.apache.axis2.transport.jms.JMSMessageSender.<init>(JMSMessageSender.java:147)
at org.apache.axis2.transport.jms.JMSSender.sendMessage(JMSSender.java:170)
at org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
at org.apache.axis2.description.OutOnlyAxisOperationClient.executeImpl(OutOnlyAxisOperation.java:297)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:675)
at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:86)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:595)
at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:423)
at org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:79)
at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:126)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:126)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:74)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:240)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:399)
at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:458)
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:206)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: oracle.jms.AQjmsException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
I have already placed required drivers also. And tried to provide "sys as SYSDBA" in the naming security principal.
Below is the address I used in the proxy service.
<address uri="jms:/Queues/Q?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=oracle.jms.AQjmsInitialContextFactory&java.naming.provider.url=jdbc:oracle:thin:@localhost:1521/xe&transport.jms.DestinationType=queue&java.naming.security.principal=sys&java.naming.security.credentials=oracle&db_url=jdbc:oracle:thin:@localhost:1521/xe"/>
Any inputs, how to resolve this issue?