Configuring the JMS Provider
Depending on your message broker, additional configuration may be required to enable JMS.
JMS support for Apache ActiveMQ is pre-configured in FME Flow; no additional configuration is required. For a complete reference, see JNDI Support. (JMS uses the Java Naming and Directory Interface (JNDI) to dynamically request named objects from the message broker.)
When using Apache ActiveMQ with JMS, keep in mind the following:
- FME Flow connects to ActiveMQ via the transport connector specified in the message broker’s XML configuration file. By default, the URL is tcp://hostname:61616.
-
FME Flow, as a JMS client, connects to ActiveMQ via a connection factory named object, and references ActiveMQ topics or queues via a destination named object. The named objects are typically specified via a JNDI configuration file, jndi.properties. For more information, see JNDI Support.
-
In the simplest configuration, a jndi.properties file is not required. By default, the connection factory name is ConnectionFactory. ActiveMQ also provides a means to dynamically connect to queues and topics via the special destination names dynamicQueues/<queue> and dynamicTopics/<topic>.
For IBM WebSphere 7, a set of JMS Administered Objects must be created in order to interface with JMS. The easiest way to accomplish this task is by using MQ Explorer.
- Install and launch MQ Explorer to the machine with the installation of FME Flow.
- Add a connection to the desired queue manager.
- In the navigation on the left, right-click Queue Managers and select Add Remote Queue Manager.
- In the wizard, specify the following parameters:
Queue manager name | qm (for example) |
Connection method | Connect directly |
Host name or IP address | server (for example) |
Port number | 1414 |
Server-connection channel | SYSTEM.ADMIN.SVRCONN (for example) |
- Ensure that both the specified server-connection channel (default: SYSTEM.ADMIN.SVRCONN) and a listener for the specified TCP port (default: LISTENER.TCP) are both enabled.
- Select Finish to complete the wizard. A new connection to a remote queue manager should appear.
- Create a JMS initial context.
- In the navigation on the left, right-click JMS Administered Objects and select Add Initial Context.
- In the wizard, specify the following parameters:
JNDI namespace location | File system |
Directory | c:\jndi (for example) |
Provider URL | file:/C:/jndi/ (for example) |
- Select ‘Finish’ to complete the wizard. A new initial context should appear.
- Create a JMS connection factory.
- Right-click Connection Factories under the newly-created initial context and select New / Connection Factory.
- In the wizard, specify the following parameters:
Name | cf1 (for example) |
Messaging provider | WebSphere MQ |
Type | ConnectionFactory |
Transport | MQ Client |
Connection/Base queue manager | qm (for example) |
Connection/Connection list | server(1414) (for example) |
Channel/Channel | c1 (for example) |
- Ensure that the queue manager and connection parameters match those of the queue manager specified above.
- Select Finish to complete the wizard. The new connection factory appears.
- Create a JMS destination for each desired queue or topic.
- Select Queues or Topics under the queue manager to bring up the current list of queues or topics.
- Right-click the desired queue or topic and select Create JMS Queue or Create JMS Topic.
- In the wizard, provide the JMS object with a name (q1 or t1, for example).
- Select Finish to complete the wizard. The new destination appears underDestinations for the JMS initial context.
- Configure security as necessary, using the setmqaut tool. For example, to enable access to a queue manager, execute the following command:
setmqaut -m qm -t qmgr -g Users +inq +connect
To enable consumer access to a queue or topic to a particular user group Users, execute the following command:
setmqaut -m qm -t queue -n q1 -g Users +get +inq +browse
setmqaut -m qm -t topic -n t1 -g Users +sub
To enable producer access to a queue or topic to a particular user group Users, execute the following command:
setmqaut -m qm -t queue -n q1 -g Users +put
setmqaut -m qm -t topic -n q1 -g Users +pub
- Create a JMS queue in the Weblogic Server, using the example outlined in https://blogs.oracle.com/soaproactive/entry/how_to_create_a_simple.
- In your Weblogic installation, locate the file wlthint3client.jar, and copy it into the <FMEFlowDir>/Server/lib/jms/ folder.
What's Next?
To make FME Flow aware of the newly-installed JMS libraries, proceed to Configuring FME Flow as a JMS Client.