Setting up Foreign JMS Dest. to MQ: JMS Destination not found
I'm trying to set up a foreign JMS destination to an MQ queue. There are several steps you have to get right for this to work. I thought I did them all correctly, but when I deploy the app with an MDB that references the JNDI name, it says (in the console) that the destination with the particular JNDI name could not be found.
I first used JMSAdmin to create the JNDI data in the provider URL file location. I created the qcf and the queue. I've displayed my results that I set with that, and it all looks fine. One thing that I'm unsure about with this, however, is that the document on using JMSAdmin doesn't make it clear exactly which field in the "queue" definition is the JNDI name, and which is the MQ queue name. My guess is that the value of the "q" field is the JNDI name, and the value of the "queue" field is the MQ queue name. I'm not certain.
I then created the foreign JMS info in the WebLogic console. I first created the foreign JMS server, using the "RefFSContextFactory" class, and my file location for the provider URL.
I then created the foreign JMS ConnectionFactory, specifying my JNDI name in both the "local" and "remote" fields. I don't know what the difference is between those two. I did NOT enter a value in the "User Name" or "Password" fields. I don't know whether that's an issue.
I then created the foreign JMS destination. I set the "local" and "remote" JNDI values to the JNDI value I set in the "q" field in JMSAdmin.
I then defined an app using an MDB, with the "destination-jndi-name" set to the same value I set in the "q" field.
When I deployed the app, I saw an error message on the console saying that when deploying the EJB module, the JNDI name (that I had specified in the "q" field) could not be found.
David,
first you should check, whether the JNDI-Entry is deployed. You can
check this by displaying the jndi-tree on the weblogic console. to do
this, right click on the server entry and select "view jndi tree".
the point with the jndi-tree you entered as "local jndi destination"
should be violet.
in the definitions of foreign jms-destinations and connection factories
you always set:
remote jndi name: the entry which you made in JMSADMIN
local jndi name: the jndi entry you want to use inside weblogic.
hope this helps,
Klaas
David Karr schrieb:
> I'm trying to set up a foreign JMS destination to an MQ queue. There are several steps you have to get right for this to work. I thought I did them all correctly, but when I deploy the app with an MDB that references the JNDI name, it says (in the console) that the destination with the particular JNDI name could not be found.
>
> I first used JMSAdmin to create the JNDI data in the provider URL file location. I created the qcf and the queue. I've displayed my results that I set with that, and it all looks fine. One thing that I'm unsure about with this, however, is that the document on using JMSAdmin doesn't make it clear exactly which field in the "queue" definition is the JNDI name, and which is the MQ queue name. My guess is that the value of the "q" field is the JNDI name, and the value of the "queue" field is the MQ queue
> name. I'm not certain.
>
> I then created the foreign JMS info in the WebLogic console. I first created the foreign JMS server, using the "RefFSContextFactory" class, and my file location for the provider URL.
>
> I then created the foreign JMS ConnectionFactory, specifying my JNDI name in both the "local" and "remote" fields. I don't know what the difference is between those two. I did NOT enter a value in the "User Name" or "Password" fields. I don't know whether that's an issue.
>
> I then created the foreign JMS destination. I set the "local" and "remote" JNDI values to the JNDI value I set in the "q" field in JMSAdmin.
>
> I then defined an app using an MDB, with the "destination-jndi-name" set to the same value I set in the "q" field.
>
> When I deployed the app, I saw an error message on the console saying that when deploying the EJB module, the JNDI name (that I had specified in the "q" field) could not be found.
Similar Messages
-
Weblogic 8.1: Remote/Foreign Server JMS - Destination not found error
Hi
This is our current setup: Weblogic Server 8.1 with JMS module running on the same instance as the application. We would like to move JMS out into its own box. I am currently setting up my development environment to test the new setup. These are the steps I followed:
* Setup the server instance running the application on one box (Box1). Removed the existing JMS Connection Factory and Destination JNDI setup
* Setup a server instance on another box (Box2) without the application. Created the necessary JMS Connection Factories and Destinations. Started the server instance on Box2
* Added a Foreign Server configuration on Box1. Created the connection factory and destinations under this foreign server pointing to Box2
* The Foreign JNDI names are being bound correctly (I verified the JNDI tree on Box1). Restarted the server instance of Box1
Message-Driven Beans deployed on Box1 are unable to retrieve messages from Box2. The exception thrown is given below. Any help in troubleshooting and resolving this issue is appreciated.
<Warning> <EJB> <myserver> <main> <<WLS Kernel>> <> <BEA-010061> <The Message-Driven EJB: MyBean is unable to connect to the JMS destination: jms/my.application.firstQueue. The Error was:
weblogic.jms.common.JMSException: Destination not found
weblogic.jms.common.JMSException: Destination not found
at weblogic.jms.dispatcher.InvocableManager.invocableFind(InvocableManager.java:136)
at weblogic.jms.backend.BESession.createConsumer(BESession.java:153)
at weblogic.jms.backend.BESession.invoke(BESession.java:1457)
at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:643)
at weblogic.jms.dispatcher.DispatcherImpl.dispatchSync(DispatcherImpl.java:179)
at weblogic.jms.frontend.FEConsumer.<init>(FEConsumer.java:232)
at weblogic.jms.frontend.FESession$3.run(FESession.java:1058)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.jms.frontend.FESession.consumerCreate(FESession.java:1054)
at weblogic.jms.frontend.FESession.invoke(FESession.java:2552)
at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:643)
at weblogic.jms.dispatcher.DispatcherImpl.dispatchSync(DispatcherImpl.java:179)
at weblogic.jms.client.JMSSession.consumerCreate(JMSSession.java:1860)
at weblogic.jms.client.JMSSession.createConsumer(JMSSession.java:1691)
at weblogic.jms.client.JMSSession.createReceiver(JMSSession.java:1530)
at weblogic.ejb20.internal.JMSConnectionPoller.setUpQueueSessions(JMSConnectionPoller.java:1720)
at weblogic.ejb20.internal.JMSConnectionPoller.createJMSConnection(JMSConnectionPoller.java:2019)
at weblogic.ejb20.internal.JMSConnectionPoller.connectToJMS(JMSConnectionPoller.java:1180)
at weblogic.ejb20.internal.JMSConnectionPoller.startJMSConnectionPolling(JMSConnectionPoller.java:846)
at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.start(MessageDrivenBeanPoolInfoImpl.java:234)
at weblogic.ejb20.deployer.EJBDeployer.deployMessageDrivenBeans(EJBDeployer.java:1660)
at weblogic.ejb20.deployer.EJBDeployer.startMessageDrivenBeans(EJBDeployer.java:1555)
at weblogic.t3.srvr.T3Srvr.startMDBs(T3Srvr.java:948)
at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:1024)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:361)
at weblogic.Server.main(Server.java:32)
Edited by: user8773992 on Sep 2, 2009 11:31 AM1 - Ensure that the MDB is configured to reference the remote connection factory AND remote destination.
2 - If using the foreign JMS server facility, ensure that it defines the URL of the remote cluster/server, a connection factory mapping, and a destination mapping. Also ensure that the MDB connection factory and destination descriptor fields reference the local JNDI names for the mappings.
3 - If not using the foreign JMS server facility, ensure that the MDB descriptor has the URL of the remote cluster, and a destination JNDI name that's in the remote cluster. (The connection factory JNDI name is not needed in this case, as the MDB will automatically look for a default connection factory that MDB's use.)
I think the MDB chapter of the EJB programmer's guide will likely be helpful here. The latest documentation for the latest release may be more up-to-date than 8.1 -- the concepts are the same with the newer releases.
Tom -
I do not have any knowledge of JMS and I am getting couple of warnings of this kind . Can anyone please explain it to me.
<WSEE>Warning: JMS queue 'weblogic.wee.DefaultQueue' is not found, as a result, Web Service async responses via jms transport is not supported. If the target service uses JMS transport, the responses will not be able to come back.<JmsQueueListener.connect:227>Hi,
This WARNING can be ignored ... Or if you dont want to see any such message next time..then please apply "-Dweblogic.wsee.skip.async.response=true"
Details:
Async web service support is not fully configured. The async response web service uri for this server was not fully deployed because the JMS reliability queue was not defined/deployed: queueName. The server will periodically retry completing the deploy for the service. This message can usually be ignored unless there are async web service applications. To completely disable async web service support, thus avoiding this message, set -Dweblogic.wsee.skip.async.response=true.
More Details:
http://download.oracle.com/docs/cd/E15523_01/apirefs.1111/e14397/WebService.html
Thanks
Jay SenSharma
http://jaysensharma.wordpress.com (WebLogic Wonders Are Here) -
Set IDOC number as Correlation ID in JMS Receiver Adapter
Hi ,
I am working in PI7.1 on IDOC to JMS interface,
I want set IDOC number as Correlation ID in JMS queue ,
I did following Correlation steps ,
1. Set JMSCorrelation ID to PI Conversation ID
2. Checked JMS CorrelationID of request
3.Value to PI Conversation ID
In Adavanced Tab
Checked Use Adapter specific Message attributes
Checked Fial if Adapter specific Message attributes missing
Checked JMS Message Correlation ID
Additional Parameter
DCJMSCorreleationID String
I have created user defined function , Not using BPM , i don't have correlation ID in target field data type
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
return conf.put(key, messageId);
please help to how to use UDF in mapping for mapping which field .
Thanks ,
Laxman.Hi Swetha ,
Thanks for your response ,
I created user defined function with one parameter , no input parmeter .
My root node of IDOC as Structure type ,
In UDF , i have not mapped the IDOC number
public String CorrelationID(String messageId, Container container) throws StreamTransformationException{
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
return conf.put(key, messageId);
messageId I need map in additonal parameter .
Thanks ,
Laxman.
DCJMSCorreleationID messageId -
Hi
I got the following error when starting weblogic 8.1 server:
####<Jul 14, 2004 5:24:15 PM PDT> <Notice> <Security> <sjcpc044> <myserver> <Thread-1> <<WLS Kernel>> <> <BEA-090082> <Security initializing using security realm myrealm.>
####<Jul 14, 2004 5:24:15 PM PDT> <Notice> <WebLogicServer> <sjcpc044> <myserver> <Thread-1> <<WLS Kernel>> <> <BEA-000327> <Starting WebLogic Admin Server "myserver" for domain "cdrdomain">
####<Jul 14, 2004 5:24:20 PM PDT> <Error> <JMS> <sjcpc044> <myserver> <Thread-1> <<WLS Kernel>> <> <BEA-040371> <JMSServer "JMSServer-0" JMS Server Session Pool is inavlid and has not been started "CMSessionPool". Exception is "weblogic.jms.common.ConfigurationException: Listener class, com.carescience.jms.CMMsgListener, not found".
weblogic.jms.common.ConfigurationException: Listener class, com.carescience.jms.CMMsgListener, not found
at weblogic.jms.backend.BEServerSessionPool.setListener(Ljava.lang.String;)V(BEServerSessionPool.java:283)
at weblogic.jms.backend.BEServerSessionPool.initialize()V(BEServerSessionPool.java:220)
at weblogic.jms.backend.BEServerSessionPool.<init>(Ljava.lang.String;Lweblogic.jms.common.JMSID;Lweblogic.jms.backend.BackEnd;Lweblogic.management.configuration.JMSSessionPoolMBean;)V(BEServerSessionPool.java:178)
at weblogic.jms.backend.BackEnd.createServerSessionPools()V(BackEnd.java:792)
at weblogic.jms.backend.BackEnd.resume()V(BackEnd.java:1314)
at weblogic.jms.JMSService.addJMSServer(Lweblogic.management.configuration.JMSServerMBean;)V(JMSService.java:2241)
at weblogic.jms.JMSService.addDeployment(Lweblogic.management.configuration.DeploymentMBean;)V(JMSService.java:2012)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Lweblogic.management.configuration.DeploymentMBean;)Z(DeploymentTarget.java:330)
at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(Ljava.util.List;)V(DeploymentTarget.java:590)
at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments()V(DeploymentTarget.java:568)
at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments()V(DeploymentTarget.java:240)
at COM.jrockit.reflect.NativeMethodInvoker.invoke0(ILjava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Native Method)
at COM.jrockit.reflect.NativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at COM.jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(DynamicMBeanImpl.java:711)
at weblogic.management.internal.DynamicMBeanImpl.invoke(Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(DynamicMBeanImpl.java:690)
at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(ConfigurationMBeanImpl.java:476)
at com.sun.management.jmx.MBeanServerImpl.invoke(Ljava.lang.Object;Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(MBeanServerImpl.java:1557)
at com.sun.management.jmx.MBeanServerImpl.invoke(Ljavax.management.ObjectName;Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(MBeanServerImpl.java:1525)
at weblogic.management.internal.RemoteMBeanServerImpl.private_invoke(Ljavax.management.ObjectName;Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(RemoteMBeanServerImpl.java:947)
at weblogic.management.internal.RemoteMBeanServerImpl.invoke(Ljavax.management.ObjectName;Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(RemoteMBeanServerImpl.java:908)
at weblogic.management.internal.MBeanProxy.invoke(Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.Object;(MBeanProxy.java:946)
at weblogic.management.internal.MBeanProxy.invokeForCachingStub(Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.Object;(MBeanProxy.java:481)
at weblogic.management.configuration.ServerMBean_Stub.updateDeployments()V(ServerMBean_Stub.java:7271)
at weblogic.management.deploy.slave.SlaveDeployer.updateServerDeployments()V(SlaveDeployer.java:1210)
at weblogic.management.deploy.slave.SlaveDeployer.resume()V(SlaveDeployer.java:362)
at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume()V(DeploymentManagerServerLifeCycleImpl.java:229)
at weblogic.t3.srvr.SubsystemManager.resume()V(SubsystemManager.java:131)
at weblogic.t3.srvr.T3Srvr.resume()V(T3Srvr.java:964)
at weblogic.t3.srvr.T3Srvr.run([Ljava.lang.String;)I(T3Srvr.java:359)
at weblogic.Server.main([Ljava.lang.String;)V(Server.java:32)
>
Here is the how the ListenerClass is set up for JMSSessionPool in config.xml. The com.carescience.jms.CMMsgListener class file is in cia.ear deployed as application for this domain.
<JMSServer Name="JMSServer-0" Store="jmsq" Targets="myserver">
<JMSSessionPool
ConnectionFactory="com.carescience.jms.ConnectionFactory"
ListenerClass="com.carescience.jms.CMMsgListener"
Name="CMSessionPool" SessionsMaximum="3">
<JMSConnectionConsumer
Destination="com.carescience.jms.CMTopic" Name="CMConnectionConsumer"/>
</JMSSessionPool>
<JMSTopic DestinationKeys="MDSDESTKEY"
JNDIName="com.carescience.jms.CMTopic" Name="CMTopic"/>
</JMSServer>
<Application Name="_appsdir_cia_ear"
Path="C:\bea81\user_projects\domains\cdrdomain\applications\cia.ear"
StagedTargets="myserver" StagingMode="stage" TwoPhase="true">
<EJBComponent Name="ejb_exchange.jar" Targets="myserver" URI="ejb_exchange.jar"/>
<EJBComponent Name="heartbeat.jar" Targets="myserver" URI="heartbeat.jar"/>
<WebAppComponent Name="cia" Targets="myserver" URI="cia.war"/>
<WebAppComponent Name="axis" Targets="myserver" URI="axis.war"/>
</Application>
I know we can avoid to the error by adding the jar file containing this class to the class path. But is there any other way?
Best Regards,
Kelvin ZhengYou could double-check in the JMS newsgroup, but I'm pretty sure that a statically configured listener like this would have to be in the classpath.
If possible, I'd encourage you to consider using a MDB instead. That could be in your EAR file instead.
-- Rob -
JMS Correlation ID in JMS Receiver Adapter
Hi ,
I am working in PI7.1 on IDOC to JMS interface,
I want set IDOC number as Correlation ID in JMS queue ,
I did following Correlation steps ,
1. Set JMSCorrelation ID to PI Conversation ID
2. Checked JMS CorrelationID of request
3.Value to PI Conversation ID
In Adavanced Tab
Checked Use Adapter specific Message attributes
Checked Fial if Adapter specific Message attributes missing
Checked JMS Message Correlation ID
Additional Parameter
DCJMSCorreleationID String
I have created user defined function , Not using BPM , i don't have correlation ID in target field data type
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
return conf.put(key, idoc_number);
I tested UDF with mapping to target field, UDF is working .
But in JMS Correlation ID value is null
I am getting error in Communication Channel monitor if ticked check box of fail If adapter-specific message attributes
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Dynamic header records are missing/incorrect specified in message: 000c2901-fc48-1def-82f9-4b126dff2151. Erroneous/Unspecified headers are: DCJMSCorreleationID
1/27/10 11:02:36 PM 000c2901-fc48-1def-82f9-4b126dff2151 Dynamic record/records: DCJMSCorreleationID, that correspond to the JMS property/properties: JMSCorrelationID, respectively is/are either missing from the message: 000c2901-fc48-1def-82f9-4b126dff2151, or have invalid types specified in the channel configurationHi Swetha ,
Thanks for your response ,
I created user defined function with one parameter , no input parmeter .
My root node of IDOC as Structure type ,
In UDF , i have not mapped the IDOC number
public String CorrelationID(String messageId, Container container) throws StreamTransformationException{
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS", "DCJMSCorreleationID");
return conf.put(key, messageId);
messageId I need map in additonal parameter .
Thanks ,
Laxman.
DCJMSCorreleationID messageId -
JMS Listner: Test Configuration Successful but not listening the messages
Hi,
I have configured the JMS Listner adapter in IDM 7.0 with Sun MQ 3.5.
My test configuration is susscessful. I have some messages on Sun MQ. I have one wotkflow associated with this adapter. I have mapped it via process rule of Edit Sync Policy. Now I want to read the messages from MQ and want to retrive in my workflow. But when I starts the scynchronization nothing comes to my workflow. The log is showing as
2007-08-16T19:05:38.354+0530: SARunner: initialized adapter
2007-08-16T19:05:38.404+0530: Initializing JMS Listener adapter.
2007-08-16T19:05:38.414+0530: Setting up JMS: local_transaction:true ackMode:1
2007-08-16T19:05:38.414+0530: Setting up JMS: user:admin password:<secret length=5/>
2007-08-16T19:05:38.414+0530: Setting up JMS: destinationType=QUEUE connFactoryName=MyQueueConnectionFactory destinationName=MyQueue messageSelector=null
2007-08-16T19:05:38.424+0530: Connection factory JNDI lookup returned an object of type com.sun.messaging.QueueConnectionFactory
2007-08-16T19:05:38.504+0530: JMS connection and consumer successfully created.
2007-08-16T19:05:38.514+0530: Connection JMS Info
PROVIDER NAME = Sun Java(tm) System Message Queue
PROVIDER VERSION = 3.5
PROVIDER MAJOR = 3
PROVIDER MINOR = 6
JMS VERSION = 1.1
JMS MAJOR = 1
JMS MINOR = 1
CLIENT_ID = null
2007-08-16T19:05:38.524+0530: Done initializing JMS Listener adapter.
2007-08-16T19:05:38.534+0530: SARunner: loop 0
2007-08-16T19:05:38.955+0530: Started, paused until Thu Aug 16 19:05:38 GMT+05:30 2007
2007-08-16T19:05:44.123+0530: Pause completed
2007-08-16T19:05:44.333+0530: Polling
2007-08-16T19:05:45.334+0530: Poll processed 0 messages.
2007-08-16T19:05:45.334+0530: Poll complete.
I am new with this adapter. Please anybody tell me what should I have to configure so that I would be able to read the messages from my JMS Listner Active Sync adapter?
Thanks in AdvanceSo, in order to get the message you have to map it. That is done be specifying the "Message Mapping", one of the Resource Parameters for JMS Listener. This can be done by specifying a rule that returns a <map> with the attribute. This would be, in my opinion, the preferred approach for text messages. For Map massages, the rule approach can't be used unless you use the jms java libraries, getString etc.
You can also implement the com.waveset.adapter.jms.JmsMessageMapper if java is your cup of tea, and put that in the message mapping text box. Password synch uses a java class to do the mapping.
To map the attribute called accId on the right side, you would use something like this:
<Rule name='JMS Message Mapper Rule'>
<block>
<map>
<s>accId</s>
<ref>message</ref>
</map>
</block>The Message Mapping text box would in this case look like this:
"rule:JMS Message Mapper Rule"
The <ref>message</ref> part contains the JMS text message. In this case the message consist of only one word. In a real-life situation, you would send a bunch of information, perhaps using split to separate the data. -
JMS Connector WebSphere MQ JMS Problems
I'm having problems configuring and using Oracle's JMS Connector with IBM WebSphere MQ JMS, as explained in the following Oracle How-to:
http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/how-to-connect-to-mqseries/doc/how-to-connect-to-mqseries.html
by Jeff Steidl
When trying to deploy the application to the oc4j (wich is done as part of the default ant target), I get the following error in the oc4j console:
2006-07-20 12:04:29.859 ERROR J2EE EJB3027 [how-to-connect-to-mqseries] An error
occured deploying EJB module: java.lang.InstantiationException: Resource except
ion(MQJMSRAInstanceName) for MessageDrivenBean DealerEjbName during endpoint act
ivation: failure looking up resource provider factory for XAConnectionFactoryWra
pper [XA Unified]-OracleGJRA.XAConnectionFactoryWrapper.pedroec.-7b007002:10c88d
48c98:-7fff.171 []: javax.resource.spi.ResourceAdapterInternalException: Looking
up java:comp/resource/MQJMSReference/mqxacf: javax.naming.NameNotFoundException
: No resource named 'MQJMSReference/mqxacf'found
I assume the problem is that I don't have an appropriate WebShpere binding for the resource.
Before going through the mentioned How-to, I followed the install instructions in:
http://www.oracle.com/technology/tech/java/oc4j/1003/how_to/jcajmsmq/doc/Install.html
In order to create a queue manager, a queue, a topic and the appropriate bindings.
After following the previous document, I end up with the following bindings (listing obtained using JMSAdmin console):
InitCtx> dis ctx
Contents of InitCtx
.bindings java.io.File
a MQXAQCF com.ibm.mq.jms.MQXAQueueConnectionFactory
a MQTCF com.ibm.mq.jms.MQTopicConnectionFactory
a MQQCF com.ibm.mq.jms.MQQueueConnectionFactory
a MQQ com.ibm.mq.jms.MQQueue
a MQT com.ibm.mq.jms.MQTopic
a MQXATCF com.ibm.mq.jms.MQXATopicConnectionFactory
7 Object(s)
0 Context(s)
7 Binding(s), 6 Administered
And as you can see there is no mqxacf binding.
So the question is, should I define a new binding with that name? If so, what would be the command (def xacf(mqxacf) ?)
As you can see, ther is a MQXAQCF binding so Instead of defining a new mqxacf (which I really don't know how to do...) I thought that maybe I could use this one, being a xa queue connection factory instead of a plain xa connection factory.
This is used by the MDB, so I modified orion-ejb-jar.xml changing:
<resource-ref-mapping
location = "MQJMSRASubcontext/MyXACF"
name = "jms/DealerConnectionFactory"/>
<config-property>
<config-property-name>ConnectionFactoryJndiName
</config-property-name>
<config-property-value>MQJMSRASubcontext/MyXACF
</config-property-value>
</config-property>
for this:
<resource-ref-mapping
location = "MQJMSRASubcontext/MyXAQCF"
name = "jms/DealerConnectionFactory"/>
<config-property>
<config-property-name>ConnectionFactoryJndiName
</config-property-name>
<config-property-value>MQJMSRASubcontext/MyXAQCF
</config-property-value>
</config-property>
I changed MyXACF with MyXAQCF because oc4j-ra.xml defines a jndi location of mqxacf (which is not beign found in the bindings) for MyXACF while it defines a jndi location of MQXAQCF for MyXAQCF, which is defined in the bindings.
With this change, the application deploys ok ... but when I run the client (ant larry) I get the following error (from the client console, not the oc4j console... in the oc4j console, nothing is reported):
run-demo:
[exec] java.lang.NullPointerException
[exec] at oracle.j2ee.ra.jms.generic.RAUtils.lookupUsingResourceProvide
r(RAUtils.java:254)
[exec] at oracle.j2ee.ra.jms.generic.CommonManagedConnectionFactoryImpl
.getFactory(CommonManagedConnectionFactoryImpl.java:605)
[exec] at oracle.j2ee.ra.jms.generic.CommonFactoryWrapper.localCreateCo
nnection(CommonFactoryWrapper.java:121)
[exec] at oracle.j2ee.ra.jms.generic.ConnectionFactoryWrapper.createCon
nection(ConnectionFactoryWrapper.java:62)
[exec] at MyChannel.<init>(MyChannel.java:46)
[exec] at Player.play(Player.java:242)
[exec] at Player.main(Player.java:30)
Since MyCF is bound to the jndi location mqcf (in oc4j-ra.xml) which does not exist in my MQ bindings I decided to modify orion-ejb-jar.xml as I did for the MyXACF of the MDB.
I changed
<resource-ref-mapping
location = "MQJMSRASubcontext/MyCF"
name = "jms/PlayerConnectionFactory"/>
with this:
<resource-ref-mapping
location = "MQJMSRASubcontext/MyQCF"
name = "jms/PlayerConnectionFactory"/>
I changed MyCF to MyQCF, which has a jndi location of MQQCF (specified inside of oc4j-ra.xml) which has a valid MQ binding.
.... but I get the following error:
run-demo:
[exec] Exception in thread "main" java.lang.AbstractMethodError: com.ibm.mq
.jms.MQQueueConnectionFactory.createConnection()Ljavax/jms/Connection;
[exec] at oracle.j2ee.ra.jms.generic.CommonManagedConnectionFactoryImpl
.createManagedConnection(CommonManagedConnectionFactoryImpl.java:261)
[exec] at com.evermind.server.connector.ApplicationConnectionManager.cr
eateManagedConnection(ApplicationConnectionManager.java:1333)
[exec] at oracle.j2ee.connector.ConnectionPoolImpl.createManagedConnect
ionFromFactory(ConnectionPoolImpl.java:324)
[exec] at oracle.j2ee.connector.ConnectionPoolImpl.access$800(Connectio
nPoolImpl.java:95)
[exec] at oracle.j2ee.connector.ConnectionPoolImpl$NonePoolingScheme.ge
tManagedConnection(ConnectionPoolImpl.java:1209)
[exec] at oracle.j2ee.connector.ConnectionPoolImpl.getManagedConnection
(ConnectionPoolImpl.java:782)
[exec] at com.evermind.server.connector.ApplicationConnectionManager.ge
tConnectionFromPool(ApplicationConnectionManager.java:1532)
[exec] at com.evermind.server.connector.ApplicationConnectionManager.ac
quireConnectionContext(ApplicationConnectionManager.java:1477)
[exec] at com.evermind.server.connector.ApplicationConnectionManager.al
locateConnection(ApplicationConnectionManager.java:1423)
[exec] at oracle.j2ee.connector.OracleConnectionManager.unprivileged_al
locateConnection(OracleConnectionManager.java:244)
[exec] at oracle.j2ee.connector.OracleConnectionManager.allocateConnect
ion(OracleConnectionManager.java:198)
[exec] at oracle.j2ee.ra.jms.generic.CommonFactoryWrapper.localCreateCo
nnection(CommonFactoryWrapper.java:130)
[exec] at oracle.j2ee.ra.jms.generic.QueueConnectionFactoryWrapper.crea
teConnection(QueueConnectionFactoryWrapper.java:84)
[exec] at MyChannel.<init>(MyChannel.java:46)
[exec] at Player.play(Player.java:242)
[exec] at Player.main(Player.java:30)
[exec] Result: 1
So as you can see I'm stuck.
Maybe it is just a simple matter of defining the appropriate objects and bindigs for mqxacf and mqcf, but I don't know how to do that.
I would appreciate any help.
Message was edited by:
pablokrauseThanks again for your quick and useful response Jeff.
Regarding the extra administration steps to get topic consumers working in MQ, I had already executed them a few days ago as part of the MQ setup as is described in another JMS resource adapter demo (see references at bottom of this reply) but I thought that doing it once was enough. Well, it seems that you have to execute those commands each time you start MQ!
I executed them (again), as you kindly suggested in your last response and voila, it worked!... well sort of.
After starting the clients, I get the following random error in oc4j:
06/07/21 15:39:18 Got message: PING
06/07/21 15:39:18 randomly testing rollback:
06/07/21 15:39:18 sending a junk message
06/07/21 15:39:18 Sent message: Invalid junk message
06/07/21 15:39:18 marking transaction for rollback
06/07/21 15:39:18 sending a junk message
06/07/21 15:39:18 Sent message: Invalid junk message
2006-07-21 15:39:18.921 WARNING J2EE JTA0107 Error in resource driver during rol
lback: javax.transaction.xa.XAException: XA operation failed, see errorCode
2006-07-21 15:39:18.921 WARNING J2EE JTA0104 Failed to add the resource due to e
rror in the resource : javax.transaction.xa.XAException: Attempt to start transa
ction while transaction Xid( Global Id c0.a7.ff.20.b0.22.00.00.0c.00.00.00.00.00
.00.00.00.00.00.00.00.00.00.00, Format Id 4660, Branch Id 7d.20.c6.d9.00.00.00.0
0.00.00.00.00.00.00.00.00) is active. errorcode : -6 : Enlistment of resource fa
iled. Attempt to start transaction while transaction Xid( Global Id c0.a7.ff.20.
b0.22.00.00.0c.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00, Format Id 4660, Bra
nch Id 7d.20.c6.d9.00.00.00.00.00.00.00.00.00.00.00.00) is active.
followed, after a few seconds, by the following stack trace:
06/07/21 16:13:30 Got message: PING
06/07/21 16:13:30 MQJMS3011: Failed to publish message to MQ queue
06/07/21 16:13:30 javax.jms.JMSException: MQJMS3011: Failed to publish message t
o MQ queue
06/07/21 16:13:30 at com.ibm.mq.jms.services.ConfigEnvironment.newExceptio
n(ConfigEnvironment.java:553)
06/07/21 16:13:30 at com.ibm.mq.jms.MQMessageProducer.publish(MQMessagePro
ducer.java:1855)
06/07/21 16:13:30 at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProduc
er.java:976)
06/07/21 16:13:30 at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProduc
er.java:1056)
06/07/21 16:13:30 at oracle.j2ee.ra.jms.generic.CommonProducerWrapper.send
(CommonProducerWrapper.java:121)
06/07/21 16:13:30 at MyChannel.send(MyChannel.java:73)
06/07/21 16:13:30 at Dealer.onMessage(Dealer.java:210)
06/07/21 16:13:30 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
ethod)
06/07/21 16:13:30 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMet
hodAccessorImpl.java:39)
06/07/21 16:13:30 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Deleg
atingMethodAccessorImpl.java:25)
06/07/21 16:13:30 at java.lang.reflect.Method.invoke(Method.java:585)
06/07/21 16:13:30 at com.evermind.server.ejb.interceptor.joinpoint.EJBJoin
PointImpl.invoke(EJBJoinPointImpl.java:35)
06/07/21 16:13:30 at com.evermind.server.ejb.interceptor.InvocationContext
Impl.proceed(InvocationContextImpl.java:69)
06/07/21 16:13:30 at com.evermind.server.ejb.interceptor.system.DMSInterce
ptor.invoke(DMSInterceptor.java:52)
06/07/21 16:13:30 at com.evermind.server.ejb.interceptor.InvocationContext
Impl.proceed(InvocationContextImpl.java:69)
06/07/21 16:13:30 at com.evermind.server.ejb.interceptor.system.SetContext
ActionInterceptor.invoke(SetContextActionInterceptor.java:34)
06/07/21 16:13:30 at com.evermind.server.ejb.interceptor.InvocationContext
Impl.proceed(InvocationContextImpl.java:69)
06/07/21 16:13:30 at oracle.j2ee.connector.messageinflow.MessageEndpointIm
pl.invokeMessageInflowCallbacks(MessageEndpointImpl.java:294)
06/07/21 16:13:30 at MessageListener_MessageEndpoint1.onMessage(MessageLis
tener_MessageEndpoint1.java:39)
06/07/21 16:13:30 at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsu
mer.java:237)
06/07/21 16:13:30 at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(
WorkWrapper.java:242)
06/07/21 16:13:30 at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWra
pper.java:215)
06/07/21 16:13:30 at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrappe
r.java:190)
06/07/21 16:13:30 at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worke
r.run(PooledExecutor.java:814)
06/07/21 16:13:30 at java.lang.Thread.run(Thread.java:595)
In the Dealer code, I found a piece of code that randomly generating a junk message and marking the transaction for rollback. If I comment out this code, everything works fine.
So, even when I managed to make the demo work, the transactional stuff is not working.
It would be really nice to know what is going on, but I'm tired, its fiday and I'm clueless...
Now, for the "Unable to load message properties file - mqji(xx).properties", it is still showing up, but as you said, MQ seems to work fine.
Thank you very much again Jeff for your invaluable and extremely responsive help.
References:
I can't seem to find an demo that was very useful for me for setting up MQ in the Oracle site, but the direct links seem to still be working:
http://www.oracle.com/technology/tech/java/oc4j/1003/how_to/jcajmsmq/doc/readme.html
http://www.oracle.com/technology/tech/java/oc4j/1003/how_to/jcajmsmq/doc/Install.html
and the sample code and scripts:
http://otn.oracle.com/tech/java/oc4j/1003/how_to/jcajmsmq.zip
Message was edited by:
pablokrause -
Error while compiling JMS example - package javax.jms does not exist
Dear All,
I am a newbie trying to use JMS. I have downloaded EE 5 SDK and installed (it contains Message Queue 4.1 as well). After the installation and going to some tutorials, I tried to compile the example 'SimpleQueueSender.java' which was downloaded from Sun website.
Before running the application, I made sure that I have set the classpath, path environment veriables correctly, but still I got the error "package javax.jms does not exist". I have searched internet for help and in all places I found people replying to similar issues. But I was not able to apply the solution as either the folder names or file names specified in the solution is different from what is existing in my system.
Please help me. Also could anyone help me in telling the pre-requisites to ensure a proper running of java application.
Thanks in Advance
Regards,
SanI'm not sure exactly what your JavaEE SDK installation contains (there are so many versions) but it will typically contain a Glassfish installation. Under the Glassfish installation, the imq directory contains all the files needed for MessageQueue.
The javax.jms package contains the JMS API interfaces. These can be found in jms.jar, which is typically in imq/lib. At runtime you will also need imq.jar from the same directory, which contains the implementation of these interfaces for MessageQueue.
Note that you will need to start a Message Queue server as well. EIther start a Glassfish server (which includes an embedded Message Queue broker), or (simpler) start a standalone Message Queue broker by running imqbrokerd (from the imq/bin directory).
Nigel -
PI 7.0 JMS Rcv Adapter: Object not found in lookup of XIJMSService
Hi all,
When sending messages to an JMS queue, JNDI setup, in the Message Monitoring we get the error:
"MP: Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Object not found in lookup of XIJMSService.: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of XIJMSService."
The Error points to the Module Processor. Indeed the 2 default Modules are used:
- SAP XI JMS Adapter/ConvertMessageToBinary
- SAP XI JMS Adapter/SendBinarytoXIJMSService
This second Module contains 'XIJMSService', and according the documentation (http://help.sap.com/saphelp_nw04/Helpdata/EN/4d/a3bc97ff55c742af7faed661635baf/content.htm)
, it uses a parameter named 'modulePoolAdminLookupName' with the default value: /XIJMSService.
This is how far we get. Even when we assign a different value to the parameter 'modulePoolAdminLookupName' , the error in the Message Monitoring stays the same.
Has anyone experience with this issue, or any ideas to investigate or solve this?
Thanx in advance, Walter.Hi all,
Issue is solved. Apparently the Java-version on our XI-server (1.4.2) could not handle the Vendor's JMS-driver we installed (ActiveMQ 4.1.2.jar) so we tried using the ActiveMQ 4.1.0.jar as the JMS-driver. Now it is OK and message are put on the destination queue.
Walter. -
JMS Destination object not found
Hi everyone,
I have a weird problem with SunONE Message Queue 3.
I have a queue and a connection factory defined (using the SunONE Application Server 7 Admin Console) as well as a physical resource.
I can verify their existance using asadmin....
asadmin>list-jmsdest -u admin server1
queue_1 queue {}
asadmin>list-jms-resources -u admin server1
jms/newqueue_1
jms/newQCF_1
When I attempt to deploy a message driven EJB I get the following error
SEVERE ( 1484): javax.naming.InvalidNameException: JMS Destination object not found:`jms/newqueue_1`
This question has already been asked on the App Server board here http://swforum.sun.com/jive/thread.jspa?threadID=15517&tstart=0 (that post is nine months old btw).
I am posting this here in the hope that someone more familiar with MQ3 may have an idea of how to help us.
Thanks in advance.I have now solved this problem. External JNDI resources are required in the AppServer.
They can be created with the following commands:
asadmin>create-jndi-resource jndilookupname jms/newQCF_1 resourcetype javax.jms.QueueConnectionFactory factoryclass com.sun.jndi.fscontext.RefFSContextFactory enabled=true --property java.naming.provider.url=file\:///c\:/java/mqjndi:java.naming.security.authentication=none newQCF_1
asadmin>create-jndi-resource jndilookupname jms/queue_1 resourcetype javax.jms.Queue factoryclass com.sun.jndi.fscontext.RefFSContextFactory enabled=true --property java.naming.provider.url=file\:///c\:/java/mqjndi newqueue_1
Both these commands assume that the file system context is being used however the LDAP commands are similar (just more properties).
This step, which seems vital, is missing from the AppServer documentation (in fact it specifically states that this step is not necessary). The irony is that I found the answer in the IBM MQ documentation! -
JMS Adapter Configuration (Access JMS Provider Generically)
Hi Exports,
How can i configure JMS adapter Using Access JMS Provider Generically, where can we mentioned target server. there is Quename and username and password but there is no target server details field. could you please give me suggetion how to configure this.Hi,
This will help you
JMS Adapter
/people/kan.th/blog/2007/02/05/exploring-jms-and-sap-xi-jms-adaper
http://help.sap.com/saphelp_nw2004s/helpdata/en/cd/d85a9d6fab7d4dbb7ae421f710626c/content.htm
Sender Jms Adapter
http://help.sap.com/saphelp_nw2004s/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/content.htm
Receiver Jms Adapter
http://help.sap.com/saphelp_nw2004s/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/content.htm
Regards
Agasthuri Doss -
JMS cluster and happen JMS Queue Exception javax.naming.NameAlreadyBoundExc
Hi,
Sorry I not sure how to setup JMS cluster in WLS 10.3.2. We have two manager server in two machine. And will join into one cluster. After configure the JMS module & JMS server. We found it only can work in one server. And will faill in another server. And reply the error message as below :
Any one can help to tell me why one server success. And other is fail !
javax.naming.NameAlreadyBoundException: JMS_Queue_misdel_a is already bound; rem
aining name ''
at weblogic.jndi.internal.BasicNamingNode.bindHere(BasicNamingNode.java:357)
at weblogic.jndi.internal.ServerNamingNode.bindHere(ServerNamingNode.java:140)
at weblogic.jndi.internal.BasicNamingNode.bind(BasicNamingNode.java:317)
at weblogic.jndi.internal.WLEventContextImpl.bind(WLEventContextImpl.jav
==> config for JMS
<jms-server>
<name>JMS_Server_cim_a</name>
<target>ebowls05</target>
<persistent-store xsi:nil="true"></persistent-store>
<hosting-temporary-destinations>true</hosting-temporary-destinations>
<temporary-template-resource xsi:nil="true"></temporary-template-resource>
<temporary-template-name xsi:nil="true"></temporary-template-name>
<message-buffer-size>-1</message-buffer-size>
<expiration-scan-interval>30</expiration-scan-interval>
</jms-server>
<jms-server>
<name>JMS_Server_cim_b</name>
<target>ebowls06</target>
<persistent-store xsi:nil="true"></persistent-store>
<hosting-temporary-destinations>true</hosting-temporary-destinations>
<temporary-template-resource xsi:nil="true"></temporary-template-resource>
<temporary-template-name xsi:nil="true"></temporary-template-name>
<message-buffer-size>-1</message-buffer-size>
<expiration-scan-interval>30</expiration-scan-interval>
</jms-server>
<migratable-target>
<name>ebowls06 (migratable)</name>
<notes>This is a system generated default migratable target for a server. Do
not delete manually.</notes>
<user-preferred-server>ebowls06</user-preferred-server>
<cluster>ebouatCluster</cluster>
</migratable-target>
<migratable-target>
<name>ebowls05 (migratable)</name>
<notes>This is a system generated default migratable target for a server. Do
not delete manually.</notes>
<user-preferred-server>ebowls05</user-preferred-server>
<cluster>ebouatCluster</cluster>
</migratable-target>
<jms-system-resource>
<name>JMS_ConnFactory_cim</name>
<target>ebouatCluster</target>
<descriptor-file-name>jms/JMS_ConnFactory_cim/JMS_ConnFactory_cim-jms.xml</d
escriptor-file-name>
</jms-system-resource>
<jms-system-resource>
<name>JMS_Queue_promis</name>
<target>ebouatCluster</target>
<sub-deployment>
<name>JMS_Queue_promis@JMS_Server_cim_a</name>
<target>JMS_Server_cim_a</target>
</sub-deployment>
<sub-deployment>
<name>JMS_Queue_promis@JMS_Server_cim_b</name>
<target>JMS_Server_cim_b</target>
</sub-deployment>
<descriptor-file-name>jms/JMS_Queue_promis/JMS_Queue_promis-jms.xml</descrip
tor-file-name>
</jms-system-resource>
<jms-system-resource>
<name>JMS_Template_cim</name>
<target>ebouatCluster</target>
<descriptor-file-name>jms/JMS_Template_cim/JMS_Template_cim-jms.xml</descrip
tor-file-name>
</jms-system-resource>
<jms-system-resource>
<name>JMS_Queue_misdel_a</name>
<target>ebouatCluster</target>
<sub-deployment>
<name>JMS_Queue_misdel_a@JMS_Server_cim_a</name>
<target>JMS_Server_cim_a</target>
</sub-deployment>
<sub-deployment>
<name>JMS_Queue_misdel_a@JMS_Server_cim_b</name>
<target>JMS_Server_cim_b</target>
</sub-deployment>
<descriptor-file-name>jms/JMS_Queue_misdel_a/JMS_Queue_misdel_a-jms.xml</des
criptor-file-name>
</jms-system-resource>
<jms-system-resource>
<name>JMS_Queue_misdel_b</name>
<target>ebouatCluster</target>
<sub-deployment>
<name>JMS_Queue_misdel_b@JMS_Server_cim_a</name>
<target>JMS_Server_cim_a</target>
</sub-deployment>
<sub-deployment>
<name>JMS_Queue_misdel_b@JMS_Server_cim_b</name>
<target>JMS_Server_cim_b</target>
</sub-deployment>
<descriptor-file-name>jms/JMS_Queue_misdel_b/JMS_Queue_misdel_b-jms.xml</des
criptor-file-name>
</jms-system-resource>1 - JMS clustering is an advanced concept, and, in most cases, uses "distributed queues". In case you haven't already, I highly recommend reading the JMS chapter of the new book "Professional Oracle WebLogic" as well as the related chapters in the JMS Programmer's Guide in the edocs.
2 - The basic problem below is that you have two different queues that have matching JNDI names, but are in the same cluster.
3 - The config snippet supplied below does not include the queue configuration. Queue configuration is embedded within the referenced module files.
4 - Please ensure that you follow configuration best practices, as per: http://download.oracle.com/docs/cd/E15523_01/web.1111/e13738/best_practice.htm#CACJCGHG -
JMS Exception: Connection not found
I get a Connection not found exception when creating a TopicSession to communicate with a remote server. Here's the situation. I have several MDBs listening to one jms topic on Weblogic 6.1. They work properly sending and receiving jms messages from the topic when run within one server.
However, I have a second Weblogic 6.1 server with the same named jms connection factory and topic as on the first machine with the MDBs deployed. I am trying to send jms messages from a stateless session bean within the first server to the second server's topic to trigger the MDBs deployed on that machine.
I create a connection using the InitialContext and get the topic but when I try and create the TopicSession, it breaks. Here's the code:
Properties myEnvironment = new Properties();
myEnvironment.setProperty(Context.INITIAL_CONTEXT_FACTORY, WEBLOGIC_ICF);
myEnvironment.setProperty(Context.PROVIDER_URL, "t3://<serverAddress>:7031");
Context myContext = new InitialContext(myEnvironment);
TopicConnectionFactory myTCFactory = (TopicConnectionFactory) myContext.lookup(CONNECTION_FACTORY);
Topic myTopic = (Topic) myContext.lookup(TOPIC_NAME);
TopicConnection myTopicConnection = myTCFactory.createTopicConnection();
// Connection is not null but breaks here:
TopicSession myTopicSession = myTopicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
And here is the error message that results.
weblogic.jms.common.JMSException: Connection not found
at weblogic.jms.dispatcher.InvocableManager.invocableFind(InvocableManager.java:121)
at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:509)
at weblogic.jms.dispatcher.DispatcherImpl.dispatchSync(DispatcherImpl.java:272)
at weblogic.jms.client.JMSConnection.sessionCreate(JMSConnection.java:268)
at weblogic.jms.client.JMSConnection.createTopicSession(JMSConnection.java:245)
at com.informore.scenariomanager.util.ScmEventJMSUtil.openTopicConnection(Unknown Source)
at com.informore.scenariomanager.components.topicdispatcher.ejb.TopicDispatcherEJB.sendTopicMessage(Unknown Source)
at com.informore.scenariomanager.components.topicdispatcher.ejb.TopicDispatcherEJB.handleMessagesPosted(Unknown Source)
at com.informore.scenariomanager.components.topicdispatcher.ejb.TopicDispatcherEJB.processJMSMessage(Unknown Source)
at com.informore.scenariomanager.components.topicdispatcher.ejb.TopicDispatcherEJB_44hyzr_ELOImpl.processJMSMessage(TopicDispatcherEJB_44hyzr_ELOImpl.java:200)
at com.informore.scenariomanager.components.topicdispatcher.ejb.TopicDispatcherMDB.onMessage(Unknown Source)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:254)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:206)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:1864)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:1819)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
I've tried using "org.omg.CORBA.ORBInitialHost" and "org.omg.CORBA.ORBInitialPort" to no avail. And, because I will potentially need MDBs running on the current and several other remote servers, I don't want to have to specify only one target machine. Any help or suggestions GREATLY appreciated!
Thanks.Thanks !
I had the same problem on wls 7.0 and it solved it.
I tried to send a JMS from server to server and got :
weblogic.jms.common.JMSException: Connection not found
at weblogic.jms.dispatcher.InvocableManager.invocableFind(InvocableManager.java:134)
The problem was that the two servers had the same name !
Ilan. -
Hi
I have a simple bpel process that's supposed to read a message from a queue and put a message back on the same queue using the JmsAdapter. When I deploy the process, the log says that java:comp/resource/ojmstest/Queues/demoQueue can not be found:
<2006-05-28 18:36:56,751> <INFO> <default.collaxa.cube.activation> <JMSAdapter::Inbound> Created new managed connection for JMS user jmsuser
<2006-05-28 18:36:57,011> <WARN> <default.collaxa.cube.activation> <JMSAdapter::Inbound> JMSMessageConsumer_init: Retrying connection; attempt #1
<2006-05-28 18:38:57,785> <WARN> <default.collaxa.cube.activation> <JMSAdapter::Inbound>
ORABPEL-12135
ERRJMS_ERR_CR_QUEUE_CONS.
Error while creating Queue consumer:.
Please examine the log file to determine the problem.
at oracle.tip.adapter.jms.JMS.JMSConnection.createConsumer(JMSConnection.java:346)
at oracle.tip.adapter.jms.JMS.JMSMessageConsumer.createConsumer(JMSMessageConsumer.java:214)
at oracle.tip.adapter.jms.JMS.JMSMessageConsumer.init(JMSMessageConsumer.java:158)
at oracle.tip.adapter.jms.inbound.JmsConsumer.init(JmsConsumer.java:115)
at oracle.tip.adapter.jms.JmsEndpoint.run(JmsEndpoint.java:113)
at oracle.tip.adapter.fw.jca.work.WorkerJob.go(WorkerJob.java:51)
at oracle.tip.adapter.fw.common.ThreadPool.run(ThreadPool.java:267)
at java.lang.Thread.run(Thread.java:534)
Caused by: oracle.jms.AQjmsException: JMS-190: Queue java:comp/resource/ojmstest/Queues/demoQueue not found
at oracle.jms.AQjmsError.throwEx(AQjmsError.java:346)
at oracle.jms.AQjmsSession.createQueue(AQjmsSession.java:1296)
at oracle.tip.adapter.jms.JMS.JMSDestination.getQueue(JMSDestination.java:83)
at oracle.tip.adapter.jms.JMS.JMSConnection.createConsumer(JMSConnection.java:330)
... 7 more
In my global application.xml, I have:
<resource-provider class="oracle.jms.OjmsContext" name="ojmstest">
<description>OJMS/AQ</description>
<property name="url" value="jdbc:oracle:thin:@eros.goldi.no:1521:orcl"/>
<property name="username" value="jmsuser"/>
<property name="password" value="jmsuser"/>
</resource-provider>
In oc4j-ra.xml, I have:
<connector-factory location="eis/aqjms/Queue" connector-name="Jms Adapter">
<config-property name="connectionFactoryLocation" value="java:comp/resource/ojmstest/QueueConnectionFactories/myQCF"/>
<config-property name="factoryProperties" value=""/>
<config-property name="acknowledgeMode" value="AUTO_ACKNOWLEDGE"/>
<config-property name="isTopic" value="false"/>
<config-property name="isTransacted" value="true"/>
<config-property name="username" value="jmsuser"/>
<config-property name="password" value="jmsuser"/>
</connector-factory>
I have checked that demoQueue exists in the database.
Any ideas?
AndréHi
I managed to get it to work now on a different database.
I probably didn't grant all the necessary rights to my jmsuser.
Thanks,
André
Maybe you are looking for
-
Hello, Yesterday my device said it had an update (10.3) and it's now stuck on the boot screen (installing updates / starting BlackBerry 10 OS) at 98%, it goes really slow to 98% (12 hours). I've tried to reinstall 3 times now, and it's always the sam
-
NTUSER.DAT in every TS profile locked by system process
I have a 32 bit 2008 Enterprise server (not R2) running terminal services that is continually generating profile errors. Users are receiving "Your user profile was not loaded correctly! You have been logged on with a temporary profile...". This is
-
Altering program files from SAP Data drive to C drive
Dear Forum, I am trying to alter the 'program files' in SAP Data drive folder that was created during installation to free up some space. In this case the SAP Data drive is the 'E' drive and the 'program files' folder is altered to 'C' drive. Here ar
-
TS1424 I was charged for a download I didn't receive. Where do I get this corrected.
I was charged for an iTunes download I didn't receive. How can I get this corrected?
-
Hi I Generate a ALV report . Now I am Selecting one column of the report and setting filter condition , the report is getting filtered . but the problem is when i select another column along with previous selected column , Filter Condition is getti