Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problem having a MDB connect to a remote JMS Topic

6 views
Skip to first unread message

Farook Wadia

unread,
Apr 17, 2003, 2:07:30 PM4/17/03
to

Hi, I am having problem making an MDB listen to a remote JMS Topic. Here's the
scenario:

> Two Weblogic servers (6.1 sp3) running on the same machine (W2K) - they are
not part of a cluster......both are independent servers

> One WLS is listening on port 7001 (Domain=WLSDomain1; Target=Server1) and the
second one on 8001 (Domain=WLSDomain2; Target=Server1 {This is not a typo, the
target is Server1})

> In WLSDomain1/Server1, I have a JMS Topic defined as follows (in its config.xml
file):

<JMSServer Name="EventServicesJMSServer"
Store="ESJMSServerFileStore" Targets="Server1">
<JMSTopic JNDIName="jms/EventServicesTopic7001"
Name="jms/EventServicesTopic7001" StoreEnabled="true"/>
</JMSServer>

> In WLSDomain2/Server1, I have a JMS Topic defined as follows (in config.xml
file):

<JMSServer Name="EventServicesJMSServer"
Store="ESJMSServerFileStore" Targets="Server1">
<JMSTopic JNDIName="jms/EventServicesTopic8001"
Name="jms/EventServicesTopic8001" StoreEnabled="true"/>
</JMSServer>

> An MDB is deployed on WLSDomain1/Server1 with the following elements in its
weblogic-jar.xml file (I haven't included the entire weblogic-jar.xml file, only
the relevant info):

..
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>1</max-beans-in-free-pool>
<initial-beans-in-free-pool>0</initial-beans-in-free-pool>
</pool>
<!-- This MDB is defined to listen to a Topic in another WLS Server running
on port 8001 -->
<destination-jndi-name>jms/EventServicesTopic8001</destination-jndi-name>
<initial-context-factory>weblogic.jndi.WLInitialContextFactory</initial-context-factory>
<provider-url>t3://localhost:8001</provider-url>
<connection-factory-jndi-name>weblogic/jms/ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
...

> An MDB is deployed on WLSDomain2/Server1 with the following elements in its
weblogic-jar.xml file (I haven't included the entire weblogic-jar.xml file, only
the relevant info):

..
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>1</max-beans-in-free-pool>
<initial-beans-in-free-pool>0</initial-beans-in-free-pool>
</pool>
<!-- This MDB is defined to listen to a Topic in another WLS Server running
on port 7001 -->
<destination-jndi-name>jms/EventServicesTopic7001</destination-jndi-name>
<initial-context-factory>weblogic.jndi.WLInitialContextFactory</initial-context-factory>
<provider-url>t3://localhost:7001</provider-url>
<connection-factory-jndi-name>weblogic/jms/ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
...

> After starting both the WLS servers, I've verified that they have made connections
to each other; the Topics are defined in the JNDI tree of the respective servers;
and the MDBs have been deployed in their respective servers. But the MDBs can't
see/connect to their respective JMS destination. Here's the error message and
stack trace from one the WLS server's trace file:

<Apr 17, 2003 4:58:25 PM GMT> <Warning> <EJB> <The Message-Driven EJB: com.manu.
common.server.objectServices.CSMEventListenerMDB_8001 is unable to connect to
the JMS destination: jms/EventServicesTopic8001. The EJB container will automatically
attempt to
re-establish the connection with the JMS server. This warning may occur during
WebLogic Cluster start-up if the JMS destination is located on another server.
When the JMS server connection is re-established, the Message-Driven EJB will
again receive JMS messages.
The Error was:
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 weblogic.ejb20.internal.JMSConnectionPoller.createJMSConnection(JMSConnectionPoller.java:522)
at weblogic.ejb20.internal.JMSConnectionPoller.connectToJMS(JMSConnectionPoller.java:418)
at weblogic.ejb20.internal.JMSConnectionPoller.trigger(JMSConnectionPoller.java:348)
at weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigger.java:238)
at weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java:229)
at weblogic.time.server.ScheduledTrigger.execute(ScheduledTrigger.java:6
9)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)


Have you run into a similar problem? Any suggestion?

Thanks,

Farook

0 new messages