This content has been marked as final. Show 10 replies
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 ##
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.
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.
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.
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).
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.
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
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 ?
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.
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:
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.