Configuring FME Server as a JMS Client
FME Server’s notification system comes equipped with both a JMS publisher and a JMS subscriber. The JMS publisher consumes messages from a message broker and publishes them to an FME Server topic. The JMS subscriber does the opposite; it subscribes to an FME Server topic, and provides messages to a message broker.
Note: Sample configurations for different message brokers are provided following these instructions.
Provide Access to the JMS Libraries
Note: Skip this section if using JMS with Apache ActiveMQ. the JMS libraries for Apache ActiveMQ are bundled with FME Server, and so java classpaths need not be modified.
To ensure the publisher and subscriber both have access to the required JMS libraries, there are two options:
- Option 1 (preferred): Place the JMS library files in the <FMEServerDir>\Server\lib\jms folder.
- Locate the JMS client libraries for the JMS Client you wish to configure (see Installing the JMS Libraries).
- Copy the JMS client libraries to <FMEServerDir>\Server\lib\jms.
- Restart FME Server.
- Option 2: Add access to the libraries in the java classpaths.
- In a text editor, open processMonitorConfigCore.txt.
- Scroll to the section on launching the JMS publisher, with the heading Start FME Server Publisher Plugin (jms).
- Identify the classpath variable, FMESERVER_CLASSPATH.
- Append the path containing the vendor-specific JMS library (see Installing the JMS Libraries). Ensure that /* appears at the end of each path, so all libraries within the path are picked up. For example:
-
Repeats steps 2 to 4 for the JMS subscriber, with the heading Start FME Server Subscriber Plugin (jms).
- Save the file, and restart FME Server.
... -FMESERVER_CLASSPATH “...;C:/Program Files (x86)/IBM/WebSphere MQ/java/lib/*” ...
Note: If the classpath variable is incorrectly specified, the following messages (or their variants) may appear in the FME Server Process Monitor log file:
"Exception in thread “main” java.lang.NoClassDefFoundError: javax/jms/JMSException"
"Failed to initialize JMS object named “xxx”, because of missing class “yyy”. Please ensure that the JMS client libraries are available for your JMS provider."
For more information, see Testing and Troubleshooting.
After restarting FME Server, proceed with adding the JMS Trigger and/or External Action (preferred) or JMS publisher and/or subscriber:
- Parameters (JMS trigger)
- Parameters (JMS external Action)
- Creating a JMS Publisher for FME Server
- Creating a JMS subscriber for FME Server
What's Next?
It is important to test the system after configuration. For more information, see Testing and Troubleshooting.