0
votes

I'm reading this FAQ by Oracle about integrating with remote JMS provider. By remote JMS provider I mean JMS server hosted by another WebLogic cluster in different domain.

The FAQ is old and doesn't go into much detail how to actually configure the remote JMS connection. Here is a take from the FAQ

Q. What information do I need to set up communications with a remote JMS provider?

A. You will need the following information to set up communications with a remote JMS provider:

The destination type—whether the remote JMS destination is a queue or a topic. The JNDI name of the remote JMS destination. For durable topic subscribers—the connection-id and subscriber-id names that uniquely identify them. Message Driven EJBs provide default values for these values based on the EJB name. For non-WebLogic remote JMS providers Initial Context Factory Class Name— the java class name of the remote JMS Provider's JNDI lookup service. The file location of the java jars containing the remote JMS provider's JMS client and JNDI client libraries. Ensure that these jars are specified in the local JVM's classpath. The URL of the remote provider's JNDI service. For WebLogic servers, the URL is normally in the form t3://hostaddress:port. If you are tunneling over HTTP, begin the URL with http rather than t3. No URL is required for server application code that accesses a WebLogic JMS server that resides on the same WebLogic server or WebLogic cluster as the application. The JNDI name of the remote provider's JMS connection factory. This connection factory must exist on the remote provider, not the local provider. If the JMS application requires transactions, the connection factory must be XA capable. WebLogic documentation refers to XA capable factories as user transactions enabled.

By default, WebLogic servers automatically provide three non-configurable connection factories:

weblogic.jms.ConnectionFactory—a non-XA capable factory. weblogic.jms.XAConnectionFactory—an XA-capable factory weblogic.jms.MessageDrivenBeanConnectionFactory—an XA-capable factory for message driven EJBs. Additional WebLogic JMS connection factories must be explicitly configured.

So the basic idea is to retrieve the JMS resources from the remote server's JNDI context and store them in the local JNDI context.

Doing the JNDI mapping seems old school to me. What is the modern way to integrate with remote WebLogic 12c JMS provider in 2018? Or is the JNDI mapping still relevant, and where could I find more information about it?

1

1 Answers

3
votes

There's 3 ways to connect to remote JMS server 1) using foreign JMS (ie JNDI mapping) 2) using Messaging bridge (adapter bit old school) 3) using SAF (store and forward)

If the connection with the remote JMS is reliable or availability of both the local and remote jms server is same then foreign JMS is a good and simple option.

If you can't depend on the availability of the remote JMS server, and want to consume message as soon as they arrive and let the local server process it in due course then SAF is recommended..