8 Replies Latest reply on Sep 23, 2009 2:51 AM by User696-Oracle

    Foreign JMS server connection issue.

    699536
      Hi All,

      We are migrating a JMS application from websphere 6.1 to weblogic 10.3. The message queue resides in a TIBCO EMS server.

      We are trying to configure the foreign JMS server through JMS Module in the admin console. We are getting the following error will deploying the application.

      +<May 4, 2009 12:32:52 AM PDT> <Warning> <EJB> <BEA-010061> <The Message-Driven EJB: TxnMessageSubscriber is unable to connect to the JMS destination: weblogic.bbmdb-txn.jms/system+
      module-0-jms.xml. The Error was:
      Can not get distribute destination information. The destination JNDI name is weblogic.bbmdb-txn.jms/systemmodule-0-jms.xml, the provider URL is null>

      we have provided the connection URL in "JNDI Connection URL" column in the foreign server setup page.

      Is there any other thing that need to be configured?
        • 1. Re: Foreign JMS server connection issue.
          668906
          Provide the provider url in the weblogic-ejb.jar.xml for the MDB :-
          <message-driven-descriptor>
          <provider-url>URL:Port</provider-url>
          </message-driven-descriptor>
          http://e-docs.bea.com/wls/docs92/ejb/DDreference-ejb-jar.html#wp1115294
          1 person found this helpful
          • 2. Re: Foreign JMS server connection issue.
            Dongbo Xiao-Oracle
            You usually would see this error when either there is any configuration error in your MDB deployment descriptor file or annotations, or the remote destination is not up when a MDB is deployed.
            If your MDB and foreign JMS server configuration are on the same WebLogic Server or in the same WebLogic cluster, null provider url is fine.
            The jndi name of the destination configured for the MDB to listen on seems to be suspicious according to the information given in the error message -- "The destination JNDI name is weblogic.bbmdb-txn.jms/systemmodule-0-jms.xml".
            1 person found this helpful
            • 3. Re: Foreign JMS server connection issue.
              699536
              Thanks Dongbo and mchellap!!

              The issue was, i was trying to use the jms module set up through admin console.(or using wrappers)

              If you use wrappers you dont need to give the provier-url and intial context class in the weblogic-ejb-jar file. I was providing the initial context class in the weblogic-ejb-jar.

              Hope this helps others.
              • 4. Re: Foreign JMS server connection issue.
                User10309429-Oracle
                I m facing the same problem, we are using Weblogic Server 10.3.
                We have defined a cluster on one Weblogic server and have created one managed server in the cluster machine and the other managed server in another machine.
                We are using Foreign JMS and I m getting the error as follow:

                ####<Jun 19, 2009 3:30:53 PM IST> <Warning> <EJB> <iflexpkw513> <Managed1> <[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1245405653881> <BEA-010061> <The Message-Driven EJB: TestJMSALSB is unable to connect to the JMS destination: fcssi/FCSSI. The Error was:
                Can not get distribute destination information. The destination JNDI name is fcssi/FCSSI, the provider URL is null>


                Not able to understand what is the problem here...

                ejb-jar.xml :

                <?xml version="1.0" encoding="UTF-8"?>
                <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
                <ejb-jar id="ejb-jar_ID">
                <enterprise-beans>
                <message-driven>
                <ejb-name>TestJMSALSB</ejb-name>
                <ejb-class>samplemdb.TestJMSALSB</ejb-class>
                <transaction-type>Container</transaction-type>
                <message-driven-destination id="MessageDrivenDestination_1169302343246">
                     <destination-type>javax.jms.Queue</destination-type>
                </message-driven-destination>
                </message-driven>
                </enterprise-beans>
                </ejb-jar>

                weblogic-ejb-jar.xml :

                <?xml version="1.0" encoding="UTF-8"?>
                <weblogic-ejb-jar
                xmlns="http://www.bea.com/ns/weblogic/90" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-ejb-jar.xsd">
                <weblogic-enterprise-bean>
                <ejb-name>TestJMSALSB</ejb-name>
                <message-driven-descriptor>
                <destination-jndi-name>fcssi/FCSSI</destination-jndi-name>
                <connection-factory-jndi-name>iflex/fcssiQCF</connection-factory-jndi-name>
                </message-driven-descriptor>
                </weblogic-enterprise-bean>
                </weblogic-ejb-jar>

                Can anyone provide some help on this.....
                • 5. Re: Foreign JMS server connection issue.
                  Tom B-Oracle
                  The Message Driven bean section of the WebLogic EJB programmer's guide walks through the required steps in detail. There's also a JMS integration FAQ. Links:

                  http://edocs.bea.com/wls/docs103/ejb/message_beans.html

                  http://edocs.bea.com/wls/docs103/jms/interop.html


                  Tom
                  • 6. Re: Foreign JMS server connection issue.
                    723829
                    Hi,

                    I am facing very similar issue that you faced but I have not given any context class or provider URL in my MDB annotation. Can you please share your annotations to MDB and also any specific configuration you did while setting foriegn JMS server?

                    Your help will be much appreciated.

                    Thanks
                    Vishal
                    • 7. Re: Foreign JMS server connection issue.
                      Tom B-Oracle
                      Hi,

                      Annotations are not currently well documented. If you want to try and use annotations to specify an MDB's source destination then, in the case of a foreign or remote destination, I think you will need to (A) configure a foreign JMS server, connection factory, and destination, then (B) specify the annotations that reference the local JNDI names of the connection factory and destination as specified by your foreign JMS configuration.

                      I think this will work in 10.3 (not sure about 10.0).

                      You can start by reading the current documentation about Foreign JMS integration. Use the same two links I supplied earlier for the Message Driven bean section of the WebLogic EJB programmer's guide and the JMS integration FAQ:

                      http://edocs.bea.com/wls/docs103/ejb/message_beans.html

                      http://edocs.bea.com/wls/docs103/jms/interop.html

                      As for the annotations themselves, they need to reference the local JNDI names of the connection factory and destination as specified by your foreign JMS configuration. I think this will work in 10.3 (not sure about 10.0):
                      package test;
                      
                      import javax.annotation.Resource;
                      import javax.ejb.*;
                      import javax.jms.*;
                      
                      @MessageDriven(mappedName = "Local-JNDI-Name-For-Remote-Q",
                                              activationConfig = {
                                                @ActivationConfigProperty(
                                                   propertyName = "connectionFactoryJndiName", 
                                                   propertyValue = "Local-JNDI-Name-For-Remote-CF") } ) 
                      public class MyMDB implements MessageListener {
                      
                        @TransactionAttribute(TransactionAttributeType.REQUIRED)
                        public void onMessage(Message message) {
                          System.out.println("Got the message: " + message);
                        }
                      }
                      • 8. Re: Foreign JMS server connection issue.
                        User696-Oracle
                        Configuration on Weblogic Console
                        ------------------------------------

                        - Open admin console and create a Foreign JMS Server.
                        - While creating foreign JMS Server provide following in JNDI properties:

                        JNDI Initial Context Factory: com.tibco.tibjms.naming.TibjmsInitialContextFactory
                        JNDI Connection URL: tibjmsnaming://localhost:7222(or server on which tibco is listening)
                        JNDI Properties Credential:=test(username of tibco)
                        Confirm JNDI Properties Credential:test(password of tibco)
                        java.naming.security.principal=test(password of tibco)



                        Thanks

                        Edited by: user743265 on Sep 22, 2009 7:51 PM