Get MDB to subscribe to JMS topic deployed on different server instance

Can you do this?
I have 2 servers.
I want to Have the MDB deployed to one server subscribe to the JMS topic deployed on the second server.
This seems like it should be possible. Is it?

Hi, I have the similar situation.
On the OC4J1 I have topic (jms/MojTopic) and factory (jms/MojTopicFactory), and my client (on the same OC4J) send some messages on that topic.
I used this solution because the client can always send messages, regardless of network failure...
On the OC4J2 I have MDB that is setup like this (orion-ejb-jar.xml):
<?xml version = '1.0' encoding = 'UTF-8'?>
<orion-ejb-jar>
<enterprise-beans>
<message-driven-deployment name="LogBean"
destination-location="jms/MojTopic"
connection-factory-location="jms/MojTopicFactory">
</message-driven-deployment>
</enterprise-beans>
</orion-ejb-jar>
I configured jms/MojTopicFactory to the host of OC4J1, but still don't understand why I have to set up jms/MojTopic?
Ok, this way I can send messages to OC4J1 and OC4J2 pick up that messages, BUT, when I disconnect OC4J2 from the network I get the following error (application.log from OC4J2):
06/12/27 11:48:35.171 10.1.3.1.0 Started
06/12/27 11:51:34.687 Error in MessageDrivenBean 'LogBean': javax.jms.JMSException: deqMessage
javax.jms.JMSException: deqMessage
at com.evermind.server.jms.JMSUtils.make(JMSUtils.java:1072)
at com.evermind.server.jms.JMSUtils.toJMSException(JMSUtils.java:1152)
at com.evermind.server.jms.TCPJMSRemoteServer.shutdownForce(TCPJMSRemoteServer.java:295)
at com.evermind.server.jms.TCPJMSRemoteServer.execute(TCPJMSRemoteServer.java:202)
at com.evermind.server.jms.JMSRemoteServer.deqMessage(JMSRemoteServer.java:575)
at com.evermind.server.jms.EvermindSession.receive(EvermindSession.java:1254)
at com.evermind.server.jms.EvermindSession.getOneMessage(EvermindSession.java:1151)
at com.evermind.server.jms.EvermindMessageConsumer.getOneMessage(EvermindMessageConsumer.java:444)
at com.evermind.server.jms.EvermindMessageConsumer.receive(EvermindMessageConsumer.java:192)
at com.evermind.server.ejb.MessageDrivenConsumer.receiveMessage(MessageDrivenConsumer.java:424)
at com.evermind.server.ejb.MessageDrivenConsumer.processMessages(MessageDrivenConsumer.java:213)
at com.evermind.server.ejb.MessageDrivenConsumer.run(MessageDrivenConsumer.java:169)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
at com.evermind.server.jms.JMSRemoteServer.processFlag(JMSRemoteServer.java:612)
at com.evermind.server.jms.JMSRemoteServer.getMessage(JMSRemoteServer.java:632)
at com.evermind.server.jms.JMSRemoteServer.access$300(JMSRemoteServer.java:72)
at com.evermind.server.jms.JMSRemoteServer$19.getReply(JMSRemoteServer.java:592)
at com.evermind.server.jms.JMSRemoteServer.readResponse(JMSRemoteServer.java:648)
at com.evermind.server.jms.TCPJMSRemoteServer.execute(TCPJMSRemoteServer.java:189)
... 10 more
When I connect OC4J2 again, the MDB doesn't pick up those messages, so my mission of 100% sure sending of messages fails :(
Any help?
Thanx,
Vanja

Similar Messages

  • Get back the Message from JMS Topic

    Hi,
    I want to Process message came to the JMS topic (say for past 10 days) in PRODUCTION environment . Is there any way i can get those messages from Persistent Store(File/JDBC).Any sugesstions????
    thanks in advance...

    As far as I think you can not directly read messages from persistence store without putting the message integrity at stake.
    Also, do you know if the messages are actually in the persistence store? Messages will persisted by the Topic only if there is any durable subscriber is there which has not read those messages. If there are no durable subscribers or if all durable subscribers have read their copy of the message from Topic the messages will be removed from persistence storage.

  • Getting portal server name using webdynpro deployed in different server.

    Hi All,
      I have a question on accessing the servername where my portal is running which has an iview created for a webdynpro which is deployed in other server.I have J2ee server1 on which portal is installed and running, now i have developed webdynpro with authentication and deployed to another J2ee server2. In server1 i want to create the iview through which i can access the webdynpro deployed in server2, now in my webdynpro i used NavigationTarget with LinkToURL element where user can navigate to the one of portal page which requires the servername of portal, so how can i get the servername where portal is running(server1) if my webdynpro is deployed in server2.please provide what are the steps rerquired to get this scenario running and also for i used the target propery of linktourl to _self  and _top but its opening in new browser, i want link to open  in same window.Please give your valuable suggestions.
    Thanks,
    Pkv.

    Hi..
    try {
         InetAddress ina = InetAddress.getLocalHost();
          wdComponentAPI.getMessageManager().reportSuccess("Host name is "ina.getHostName()"..Host address "ina.getHostAddress()"...CanonicalHostName   "ina.getCanonicalHostName()"...by name    "+ina.getByName(ina.getHostName()));
         } catch (UnknownHostException e) {
         // TODO Auto-generated catch block
         wdComponentAPI.getMessageManager().reportSuccess(""+e);
    this is the small peice of to know  and tell me ur requirment is on Development Server or Production,for development above code is enough if not than need to do more
    Regards
    Rajesh

  • How to create iView for WDPApplication deployed in another server instance?

    hi experts,
    I am in the Enterprise Portal (Server01), need to create iViews for deployed WDP applications (Server02).
    When creating a new iViews, i can only get WDP applications deployed in Server01 as in [this screen|http://img98.imageshack.us/img98/6361/newiview.png].
    My question is, is it possible for me to create iViews in Server01 for WDP applications deployed in Server02? How??
    Thanks in advance.
    Regards,
    kityein

    Hi,
    You can either go with an [url|http://help.sap.com/saphelp_nw70/helpdata/en/4c/eee2bedf3b4082b14a933e5ee63472/frameset.htm] iView or might want to check with [federating|http://help.sap.com/saphelp_nw70/helpdata/en/67/7e70424edcc553e10000000a1550b0/frameset.htm] your portals.
    Kind Regards,
    Mrityunjay.

  • Deployment in different server

    Hi,
    Can anyone tell me how to deploy an application that is created in our workspace in another server,ie., if i develop an application how will i make it viewable to a different user in a another server different from mine.
    please let me know.
    Thanks.

    Chapter 11 in the HTML DB Users Guide would be a good place to start.

  • Flex with JMS Topic/Queue for Asynchronous messaging

    I have been working on Flex and JMS integration using Data
    Services for Asynchronous messaging. I am able to do this
    successfuly. Now I am in need to do the same without using the Data
    Services piece.
    For doing this I have done the following ......
    I have created a JMS Webservice in the Oracle JDeveloper 10G
    along with Webservice Client.I am able to Listen to JMS Topic/Queue
    ( this has been created in the Oracle AS ) using this Webservice
    and receive the messages from this JMS Topic/Queue
    Asynchronously.....
    But If I need to use the Flex Client , I am not able to
    Communicate with this Webservice to listen to the JMS Topic/Queue.
    Did any one in this forum tried to communicate with JMS
    Topic/Queue without using Flex Data Service.If so please share your
    inputs.

    Here is my confusion (I'm using J2EESDK1.3).
    On a local server I did the following
    j2eeadmin -addJmsFactory jms/RemoteTCF topic -props url=corbaname:iiop:mars#mars
    In the app client running on the local server I had the code
    ic = new InitialContext();
    // JNDI lookup. The resource factory ref points to the
    // Remote Connection Factory I registered
    tcf = (TopicConnectionFactory)ic.lookup("java:comp/env/jms/TopicConnectionFactory");
    // The env ref points to jms/Topic of the local server
    pTopic = (Topic)ic.lookup("java:comp/env/jms/PTopic");
    So I'm assuming that I'm using a connection factory that connect to mars and a Topic on the local box.
    On remote server mars, I deployed a MDB which use
    jms/TopicConnectionFactory and jms/Topic. But I'm thinking this jms/Topic and the one I used on the local box are not the same one. Right? Then how could the app client and the MDB share messages?
    Some of my explanation I don't if it makes sense or not.
    ConnectionFactory is a way to tell what kind of connection it could generate (Queue, Topic, Durable etc) and Where the connection would go to (local or remote).'
    As for as destination, I'm not sure. How could two server share one Topic?

  • Bea 9.2 : deployment to managed server failed (J2EE:160149)

    Hi,
    I am trying to deploy portal application to managed server instance. When i am deploying it to an admin server, deployment is fine but when i am deploying to managed server instance, it fails with following error:
    ********* log start ************
    [J2EE:160149]Error while processing library references. Unresolved application library references, defined in weblogic-application.xml: [Extension-Name: wlp-groupspace-app-lib, Specification-Version: 9.2, Implementation-Version: 9.2.1, exact-match: false], [Extension-Name: wlp-collab-portlets-app-lib, Specification-Version: 9.2, Implementation-Version: 9.2.1, exact-match: false], [Extension-Name: wlp-framework-full-app-lib, Specification-Version: 9.2, Implementation-Version: 9.2.1, exact-match: false], [Extension-Name: wlp-commerce-tools-support-app-lib, Specification-Version: 9.2, Implementation-Version: 9.2.1, exact-match: false], [Extension-Name: wlp-tools-support-app-lib, Specification-Version: 9.2, Implementation-Version: 9.2.1, exact-match: false], [Extension-Name: wlp-webdav-app-lib, Specification-Version: 9.2, Implementation-Version: 9.2.1, exact-match: false], [Extension-Name: wlp-tools-admin-app-lib, Specification-Version: 9.2, Implementation
    ********* log end **************
    Can you note that the it was fine when deployment was done to admin server.
    I am not sure whether i have set up the managed server instance in the proper way. This is what i did to set up managed server instance before deployment
    (1) create weblogic domain
    (2) create managed server listening at port 8001. (admin is at 7001)
    (3) created machine and in the node manager added the managed server to the machine just created.
    (4) started node manager through script, started admin server and started managed server by
    startManagedWebLogic.cmd managedserver admin_url
    => No errors so far. but now when i try to deploy portal application to managed server instance, it fails.
    Any pointers???
    (ps : can a moderator help me to move this message to the portal forum instead of here..thanx)
    Edited by tamugrg13 at 03/25/2007 8:09 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    don't worry about this. i have resolved this by deploying into a cluster. looks like BEA doesn't support non-clustered deployment to managed server instances.

  • Deploy MDBs in Different WL Instances Subscribed to Same Topic

              Let's say I have MDBs X, Y, and Z, each needing to be deployed to a different Weblogic
              server. All need to subscribe to the same Topic. How is this done? Specifically,
              how is the Topic configured and how are the MBDs deployed?
              Thanks,
              Jim Goodwin
              

    For your reading enjoyment, I'm posting some of my
              internal notes on durable subscriber MDB's. This consolidates
              newsgroup information in one place.
              Jim Goodwin wrote:
              > "Jim Goodwin" <[email protected]> wrote:
              >
              >>Let's say I have MDBs X, Y, and Z, each needing to be deployed to a different
              >>Weblogic
              >>server. All need to subscribe to the same Topic. How is this done? Specifically,
              >>how is the Topic configured and how are the MBDs deployed?
              >>
              >>Thanks,
              >>
              >>Jim Goodwin
              >
              >
              > Bah! Nevermind. I found the information I was looking for in other threads.
              A durable topic subscriber MDB uses its name to generate its client-id.
              Since JMS enforces uniqueness on this client-id, this means that if a durable
              subscriber MDB is deployed to multiple servers only one server will be able
              to connect. Some applications want a different behavior where
              each MDB pool on each server gets its own durable subscription.
              The MDB durable subscription id, which must be unique on its topic, comes from:
              1) <jms-client-id>MyClientID</jms-client-id>
              (the weblogic dtd)
              2) if (1) is not set then the client-id
              comes from the ejb name.
              The durable subscription is uniquely identified within a cluster by a
              combination of "connection-id" and "subscription-id". Only one active
              connection may use a particular "connection-id" within a WebLogic cluster.
              The connection id comes from:
              1) The "ClientId" attribute configured on the WebLogic connection factory.
              This defaults to null. Note that if the ClientId is set on a connection
              factory, only one connection created by the factory
              may be active at a time.
              2) If (1) is not set, then, as with the subscriber-id,
              the connection-id is derived from jms-client-id descriptor attribute:
              <jms-client-id>MyClientID</jms-client-id>
              (the weblogic dtd)
              3) If (1) and (2) are not set, then, as with the subscriber-id,
              the connection-id is derived from the ejb name.
              Work-around:
              A) Create a custom connection-factory for each server:
              1) configure "JNDIName" to the same value across all servers
              ("myMDBCF" in this example)
              2) configure "ClientId" to a unique value per server
              3) enable "UserTransactionsEnabled"
              4) enable "XAConnectionFactoryEnabled"
              5) set "AcknowledgePolicy" to "ACKNOWLEDGE_PREVIOUS"
              6) target the CF at a single WebLogic server
              (Number 5 is required for non-transactional topic MDBs)
              B) In the MDB's weblogic-ejb-jar.xml descriptor, set the MDB's connection
              factory to the JNDI name of the custom connection factories configured in
              (A). Optionally, also specify the subscriber-id via the jms-client-id
              attribute.
              <weblogic-ejb-jar>
              <weblogic-enterprise-bean>
              <ejb-name>exampleBean</ejb-name>
              <message-driven-descriptor>
              <connection-factory-jndi-name>myMDBCF</connection-factory-jndi-name>
              <jms-client-id>myClientID</jms-client-id>
              </message-driven-descriptor>
              </weblogic-enterprise-bean>
              </weblogic-ejb-jar>
              C) Target the application at the same servers that have the custom connection
              factories targeted at them.
              Notes/Limitations:
              1) If the MDB is moved from one server to another, the MDB's corresponding
              connection-factory must be moved with it.
              2) This work-around will not work if the destination is not in the same
              cluster as the MDB. (The MDB can not use the local connection factory, which
              contains the connection-id, as connection factories do not work unless they
              are in the same cluster as the destination.)
              3) This work-around will not work for non-WebLogic JMS topics.
              

  • Getting DOM Parsing Exception in translator while Dequeuing the message from JMS topic

    Hi All,
    Hope you all doing good.
    I have an issue.
    I am running on 11.1.1.5 SOA suite version on Linux.
    In my aplication I have 4 projects which are connected by with topic/queue.
    But in one of the communication, the JMS topic throws me the below error in the log, but dequeue happend perfectly fine and the application runs smoothly.
    [ERROR] [] [oracle.soa.adapter] [tid: weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@530c530c] [userId: <anonymous>
    ] [ecid: 5552564bd7cf9140:-117a2347:142149c715a:-8000-00000000069dd133,0] [APP: soa-infra] JMSAdapter <project1>
    JmsConsumer_sendInboundMessage:[des
    tination = <TOPIC NAME>  subscriber = <Consumer project name>
    Error (DOM Parsing Exception in translator.[[
    DOM parsing exception in inbound XSD translator while parsing InputStream.
    Please make sure that the xml data is valid.
    ) while preparing to send XMLRecord JmsXMLRecord
    [ERROR] [] [oracle.soa.adapter] [tid: weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@530c530c] [userId: <anonymous>
    ] [ecid: 5552564bd7cf9140:-117a2347:142149c715a:-8000-00000000069dd133,0] [APP: soa-infra] JMSAdapter <project name>
    java.lang.Exception: DOM Parsing Exception in translator.
    DOM parsing exception in inbound XSD translator while parsing InputStream.
    Please make sure that the xml data is valid.
            at oracle.tip.adapter.jms.inbound.JmsConsumer.translateFromNative(JmsConsumer.java:603)
            at oracle.tip.adapter.jms.inbound.JmsConsumer.sendInboundMessage(JmsConsumer.java:403)
            at oracle.tip.adapter.jms.inbound.JmsConsumer.send(JmsConsumer.java:1161)
            at oracle.tip.adapter.jms.inbound.JmsConsumer.run(JmsConsumer.java:1048)
            at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:120)
            at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:184)
            at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
    But when I try putting the archived data on this topic, it throws me the same error but even dequeuing doesnt happen.
    I have extracted the payload and validated against the xsd, it looks fine and even the validator doesnt throw me any error.
    But I guess I am missing something, which I am immediately not getting.
    Please let me know, if I am soemthing here which is causing this erro.
    Thanks,
    Chandru

    I searched about this error, but no luck.
    First time when the message dequeues, the consumer can consume the message but throws the error in the log.
    But when I put the message back into queue from archive directory, the consumer doesnt consume message and throws me the same error.
    Does anyone faced this sort of issue.
    I checked my xsd throughly, and validated it externally. but didnt fine any error.
    if anyone knows, suggest me how to resolve this issue.
    thanks & regards
    Chandru

  • Topic subscriber in JMS cluster

              I have clustered 2 JMS servers, A and B. The subscriber is listening to the topic
              . The subscriber used the cluster ip address in the intial context to connect to
              the server t3://A,B:7010 and listen to the topic . FYI The connection factory is
              deployed to the cluster.
              The subscriber receives the message sent by the publisher.
              But when say server A fails , the Publisher still can publish messages to server
              B (failover works) , but the subscriber stops receiving the messages.
              I thought in clustered environment the subscriber would still receive messages if
              it connects to the topic using the connection factory deployed on the cluster.
              Can somebody throw an insight!!
              Thanks
              Ashok
              

    I assume you're on 6.0?
              Which server did you target your topic? If that server fails, then no, you will not be able to
              subscribe to anything...
              Gene
              "ashok shamnani" <[email protected]> wrote in message news:3a880141$[email protected]..
              >
              > I have clustered 2 JMS servers, A and B. The subscriber is listening to the topic
              > The subscriber used the cluster ip address in the intial context to connect to
              > the server t3://A,B:7010 and listen to the topic . FYI The connection factory is
              > deployed to the cluster.
              >
              > The subscriber receives the message sent by the publisher.
              > But when say server A fails , the Publisher still can publish messages to server
              > B (failover works) , but the subscriber stops receiving the messages.
              >
              > I thought in clustered environment the subscriber would still receive messages if
              > it connects to the topic using the connection factory deployed on the cluster.
              >
              > Can somebody throw an insight!!
              >
              > Thanks
              > Ashok
              

  • Problem having a MDB connect to a remote JMS Topic

    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 arenot part of a cluster......both are independent servers
    One WLS is listening on port 7001 (Domain=WLSDomain1; Target=Server1) and thesecond 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.xmlfile):
    <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.xmlfile):
    <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 itsweblogic-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 itsweblogic-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 connectionsto 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

    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 arenot part of a cluster......both are independent servers
    One WLS is listening on port 7001 (Domain=WLSDomain1; Target=Server1) and thesecond 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.xmlfile):
    <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.xmlfile):
    <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 itsweblogic-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 itsweblogic-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 connectionsto 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

  • Problem having a MDB connect to a remote JMS Topic (WLS 6.1 sp3)

              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
              

    FAQ. Naming conflict. To interop between domains make sure:
              All WL Servers are named differently.
              All JMS Servers are named differently.
              All JMS Stores are named differently.
              Tom
              Farook Wadia wrote:
              > 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
              

  • Messages posted to JMS Topic from OSB disappear even when not subscribed

    Hi,
    We are using an OSB service to publish xml messages to a weblogic JMS Topic. Message is persistent. There are no consumers for the Topic. There is no expiration limit set.
    We are able to see the message from OSB reach the Topic. It stays in the Topic for a few seconds and then disappears.
    The State of the message shows up as "send transaction" on the Topic in the weblogic console. And it shows up as Message Pending instead of Message Current.
    Is there a way to ensure that the message stays in the Topic till it is consumed by a subscriber?
    Thanks,
    Senthil

    Hi Senthil,
    The topic persists messages only for subscribers, if there is no subscribers, then it is not necessary to persist the message.
    This is the same case for you as well, as there are no subscribers the message gets deleted.
    So first you need to have atleast one subscriber first (A dummy proxy that is reading from the topic) and then post to the topic (through your OSB service or hermes jms tool, etc .. ) . Then if you try to go and check the topic you will be able to see the message.
    Hope this information helps.
    Thanks,
    Patrick
    Edited by: Patrick Taylor on May 13, 2011 2:40 PM

  • JMS Topic - Deliver to only one Durable Subscriber

    Hi,
    Is it possible to put a message onto a topic but only have it delivered to a single durable subscriber?
    I realise this breaks the rules of what a topic is but this is for a scenario where a single subscriber has errored when processing the original message from the topic. I am putting a user interaction process to recover it and if the user selects ‘resubmit’ I want to put the message back on the topic but only deliver it to the one subscriber that failed to process the message.
    My ways to achieve this (in order of preference) would be.
    1.     JMS Adapter
    2.     Writing Java to use JMS API
    If neither of these are possible than:
    3.     Create a System Resubmit queue and have every composite look for message on the resubmit queue (with their client ID) as well as the normal topic they use
    Of course I would like to avoid 3 as it introduces a complication into every process we create that takes messages from a JMS Topic.
    Thanks for your help.
    Robert

    I could suggest a (dirty) trick:
    all subscribers subscribe to the topic using a filter (message selector, http://docs.oracle.com/javaee/6/tutorial/doc/bnceh.html#bncer)
    SUBSCRIBER1 uses:
    destination = ALL OR SUBSCRIBER1
    SUBSCRIBER2 uses:
    destination = ALL OR SUBSCRIBER2
    etc
    The first message has the property destination set to ALL, so all subscribers will process it.
    The resubmitted message will have destination = SUBSCRIBER<N>, where N is the failed subscriber

  • JMS topic-cache topic is not getting broadcasting in other managed servers

    Hi All,
    Please give me some idea in fixing the issue that im facing.
    I have created the JMS topic in my weblogic console server which has 2 managed servers.
    I have a feature in my application which is kept in a cache that will be used by my JMS topic. If my request hits managed 1 server im able to see the newly created feature.
    But the same feature is not working when i make the request hit managed 2 server.
    It means the JMS topic is not getting broadcasted properly in other managed server. I dont want to go for a server recycle which will resolve the issue.
    Please let me know if im not clear enough.
    Below is the description provided by my partner on the same issue in his words..
    "The JMS Topic - 'CacheTopic' is not broadcasting messages created on one managed server to the remaining managed servers.
    The same problem is observed in Production as well. Let us know if there is anything wrong in the way the JMS Topic is created or any other configuration is missing, that is not allowing the proper functioning of the Topic."
    fyi...i have all my firewall enabled between the managed servers.And multicast property is also declared correctly only.

    Please let me know if im not clear enough.No. Please explain again.
    The JMS Topic - 'CacheTopic' is not broadcasting messages created on one managed server to the remaining managed servers.Is it a distributed topic? Or does it mean a topic message doesnt get delivered to all subscribers?
    ram.

Maybe you are looking for