10 Replies Latest reply on Apr 3, 2013 5:00 AM by 998135

    JMS connecting to remote Queue


      I would like to know how to configure WLS to connect to remote JMS queue to retrieve messages.

        • 1. Re: JMS connecting to remote Queue

          If backend JMS queue is WLS JMS queue then you can go for JMS bridge to read messages from remote queue and load it into your queue.

          something like queue A at ur end configured as target destination and queue B at remote end configured as source destination. Create a bridge on side which is running higher version of weblogic and do the configuration. As soon as remote application puts messages on queue B it will be wired to queue A using the configured bridge and application listening on queue A can consume it and process.

          ## Rank it if answer is useful ##

          • 2. Re: JMS connecting to remote Queue
            Dongbo Xiao-Oracle
            Another option is to use the message driven bean (MDB). Your MDB can directly consume from a remote WLS JMS destination, or consume from a remote 3rd party destination via Foreign JMS Server configuration.
            You can find the details in the MDB documentation.
            • 3. Re: JMS connecting to remote Queue
              Tom B-Oracle
              The Integrating Remote JMS Providers FAQ (http://download.oracle.com/docs/cd/E17904_01/web.1111/e13727/interop.htm#JMSPG553) enumerates a variety of options.

              • 4. Re: JMS connecting to remote Queue

                I have created :

                1. JMS server.
                2. JMS Module

                Then i have created "ForeignServer" in the JMS Module and inside the next parameters:

                3. In the JMS module i have created subdeployments.
                4. In the JMS module i have created Destination (local JNDI name, Remote JNDI name)
                5. In the JMS module i have created Connection FC ( local JNDI name, Remote JNDI name).
                6. In the JMS General i have updated
                Jndi Initial Context Factory which is default : weblogic.jndi.WLInitialContextFactory
                Jndi Connectin URL: i put the t3://host:port

                Now i have the JNDI Properties Credential and JNDI properties (which i think should be updated too).

                In order to connect to remote server JNDI i have username and password.

                Question where i have to specify the username/password and what is the proper syntax if there any additional words except the username and pass itself.

                • 5. Re: JMS connecting to remote Queue
                  Dongbo Xiao-Oracle
                  In the JNDI Properties field, we can set all of the properties that you need for creating an initial context. You can put your username there too (java.naming.security.principal=myuser, for example).

                  You can also put your password there (say java.naming.security.credentials=mypassword), but the password will be in clear text. Alternatively if you want your password to be encrypted, you need to put it in the "JNDI Properties Credential" field on the console (and put it in the second time to confirm it).
                  • 6. Re: JMS connecting to remote Queue

                    I have configure the credentials field with the password, and used according to the example the JNDI properties (to have the username there).

                    Additional question, whether i should enable trust between 2 servers in order to connect to the Remote Queue ?

                    If yes, pls provide more info how to enable the trust.

                    • 7. Re: JMS connecting to remote Queue
                      Dongbo Xiao-Oracle
                      If you application uses JTA, JMS and MDBs and the environment involves multiple WLS domains, you need to consider establish the security relationship between each pair of domains that communicate with each other.

                      You can enable global trust between 2 domains. It is simpler to enable but opens the door for all traffic between the two domains. Refer to the following doc for how to enable global trust.

                      Alternatively, we can enable cross-domain security, which allows you to define a credential mapping between two domains. This feature is not available on some of the old releases. For details please refer to the doc at
                      • 8. Re: JMS connecting to remote Queue

                        I have configured only the JMS server, JMS module (Foreign Server).
                        After the configuration of the Foreign Server (in JMS module) in order to access the Remote Queue, how i can test that the connection to the remote queue is working ?

                        • 9. Re: JMS connecting to remote Queue
                          anjhawar - oracle
                          A quick check would be the JNDI tree of the server instance which is hosting the FJMS; there you can check the info on the local destination name. Normally, if we do not face any error (like a red mark on the JNDI name), the communication/configuration is correct.

                          But this is not it, you need to use a simple sender(or receiver, if you wish) like Hermes JMS and connect and post message to the local JNDI using the host name of the WLS instance; now browse through the physical destination (remote queue). This would validate whether there are no issues with the action privileges.

                          • 10. Re: JMS connecting to remote Queue

                            Thanks for the reply.
                            I have checked the JNDI tree and i see the local JNDI (Local Queue, Local Conneciton Factory) with no red signs.
                            In additional i am checking with Jdeveloper if i can browse the Queue, but i don't see the remote queue.

                            So maybe i am missing something in the configuration.

                            My configurations are:
                            JMS Module:
                            Foreign server (Initial Context Factory, JNDI connection Url, credentials, confirm credentials, JNDI properties (java.naming.security.principal=username))
                            Destinations: (Local JNDI queue name, Remote JNDI queue name)
                            Connection Factories: (Local JNDI factory name, Remote JNDI factory name, user, password, confirm password).

                            Then restarted the JMS Module.

                            Then connecting with Jdeveloper to the host of the managed server and browsing all available JMS destionations.
                            I see the folder of the JMS module, but under it there is no Queue.

                            So is there anything else that should be configured in order to connect to remote QUEUE.