Six Stars

how to use an Oracle AQ defined in the Weblogic Foreign Server Destination in the tJmsInput

I am trying to use the queue (Oracle AQ) defined in the Weblogic Foreign Server (as one of the destination) in the tJMSInput component. But I get the following error. It doesn't like the JMSModule!Queue format. Could anyone help me how to specify the AQ in tJMSInput? Thanks

 

tJmsInput.GIF

"Starting job TestJob at 15:23 09/10/2017.

[statistics] connecting to socket on port 3665
[statistics] connected
Exception in component tJMSInput_1
weblogic.jms.common.JMSException: [JMSExceptions:045101]The destination name passed to the createTopic or createQueue "TestModule!TestAQ" is invalid. If the destination name does not contain a "/" character, then it must be the name of a distributed destination that is available in the cluster to which the client is attached. If it does contain a "/" character, then the string before the "/" must be the name of a JMS server or a ".". The string after the "/" is the name of a the desired destination. If the "./" version of the string is used then any destination with the given name on the local WebLogic Server instance will be returned.
at weblogic.jms.dispatcher.DispatcherAdapter.convertToJMSExceptionAndThrow(DispatcherAdapter.java:110)
at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSyncNoTran(DispatcherAdapter.java:61)
at weblogic.jms.client.JMSSession.createDestination(JMSSession.java:3192)
at weblogic.jms.client.JMSSession.createQueue(JMSSession.java:2577)
[statistics] disconnected
at weblogic.jms.client.WLSessionImpl.createQueue(WLSessionImpl.java:938)
at sw_processpvproductstostep.testjob_0_1.TestJob.tJMSInput_1Process(TestJob.java:521)
at sw_processpvproductstostep.testjob_0_1.TestJob.runJobInTOS(TestJob.java:887)
at sw_processpvproductstostep.testjob_0_1.TestJob.main(TestJob.java:655)
Caused by: weblogic.jms.common.JMSException: [JMSExceptions:045101]The destination name passed to the createTopic or createQueue "TestModule!TestAQ" is invalid. If the destination name does not contain a "/" character, then it must be the name of a distributed destination that is available in the cluster to which the client is attached. If it does contain a "/" character, then the string before the "/" must be the name of a JMS server or a ".". The string after the "/" is the name of a the desired destination. If the "./" version of the string is used then any destination with the given name on the local WebLogic Server instance will be returned.
at weblogic.jms.frontend.FEManager.destinationCreate(FEManager.java:207)
at weblogic.jms.frontend.FEManager.invoke(FEManager.java:572)
at weblogic.messaging.dispatcher.Request.wrappedFiniteStateMachine(Request.java:972)
at weblogic.messaging.dispatcher.DispatcherServerRef.invoke(DispatcherServerRef.java:276)
at weblogic.messaging.dispatcher.DispatcherServerRef.handleRequest(DispatcherServerRef.java:141)
at weblogic.messaging.dispatcher.DispatcherServerRef.access$000(DispatcherServerRef.java:34)
at weblogic.messaging.dispatcher.DispatcherServerRef$2.run(DispatcherServerRef.java:111)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
Picked up JAVA_TOOL_OPTIONS: -Djava.vendor="New Oracle"
Job TestJob ended at 15:23 09/10/2017. [exit code=1]"

4 REPLIES
Moderator

Re: how to use an Oracle AQ defined in the Weblogic Foreign Server Destination in the tJmsInput

Hello,

The Message From field is case-sensitive. Could you please recheck your TestModule!TestAQ to see if it is valid?

Best regards

Sabrina

 

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
Employee

Re: how to use an Oracle AQ defined in the Weblogic Foreign Server Destination in the tJmsInput

Hi,

 

So you could do the following to get handle on JMS destination

1. In a Non clustered environment, the format of the string to use is:

<jmsservername>/<jmsmodulename>!<destinationname>


2. In a clustered environment use: <jmsmodulename>!<destinationname>

 

Six Stars

Re: how to use an Oracle AQ defined in the Weblogic Foreign Server Destination in the tJmsInput

Hi Sabrina, 

Yes, I use the correct letter case for "Message From". This works if the queue is JMS. But what I am trying to use is a AQ JMS defined in a weblogic foreign server. So, the queue and the connection factory I use in the tJMSInput component are ones defined in the foreign server. I also have the aqapi, wlclient.jar, ojdbc6.jar and orai18n.jars in my Talend classpath.

Thanks.

 tJMSInput (1).GIF

 

 

 

Six Stars

Re: how to use an Oracle AQ defined in the Weblogic Foreign Server Destination in the tJmsInput

Hi Krishnan, please see my previous response. Thanks.