Consider consuming JMS messages through an API Gateway such as Mulesoft. Configure your API Gateway to consume the JMS messages and forward those messages as HTTP REST requests to Appian's Web API. This provides several advantages over the JMS Integration:
Integrating with JMS out-of-the-box is not supported in Appian Cloud.
Appian has the capability to receive and consume JMS messages out of the box. Appian relies on the JMS capabilities of the application server to expose a local JMS queue. A message driven bean (MDB) is preconfigured to listen to incoming messages to the local queue and process them by forwarding the messages contents to their destinations in the process execution engines.
To integrate with JMS out of the box, JMS messages must be sent to the local queue in the application server. Please refer to the Appian documentation Working with the Java Messaging Service.
Appian does not have the capability to send JMS messages out of the box.
This section answers the questions related to how to integrate Appian with an existing JMS queue or topic.
Consuming JMS messages is not supported in Appian Cloud.
There are 2 options for Appian to consume JMS messages posted on an existing queue or topic hosted in a remote JMS provider:
A JMS bridge is used to communicate between the existing queue/topic and the Appian out of the box local queue. The JMS bridge is configured to forward all messages from the existing remote queue/topic to the Appian queue. When the messages are received by the Appian queue, they are processed by the out of the box JMS integration provided by Appian.
JMS bridge is a standard feature on most JMS providers. Please refer to your JMS vendor documentation for information about how to setup and configured JMS bridges.
A new MDB is used to connect to the existing remote queue/topic and to listen for new messages. The MDB is deployed within the application server running Appian. When a message is received on the remote queue/topic, the MDB is notified. It consumes the message and forwards its contents to the Appian execution engines.
To use a new MDB as described above, you must:
There are 2 options for Appian to send JMS messages to an existing queue or topic hosted in a remote JMS provider:
A custom smart service plugin acts as a JMS client: it is used to connect to the remote queue/topic and send the JMS message.
The plugin is responsible for :
Please refer to the documentation of your JMS vendor as implementation of JMS clients may vary.
A JMS bridge is used to send the message to the remote queue/topic. To use a JMS bridge for this purpose, you must:
When a process sends a JMS message, the JMS message is sent to the local queue using the Send Message node. The JMS bridge picks up the message and forwards it to the remote queue.
Scaling Appian for large amounts of JMS message is achieved by adding additional processing nodes to handle more volume.
When large amounts of JMS messages need to be consumed by Appian:
When large amounts of JMS messages need to be sent by Appian:
Appian supports sending and receiving JMS messages from and to any JMS providers that comply with the Java JMS specifications.The list below shows some JMS vendors that Appian integrated with in the past. This list is not exhaustive.
Some JMS providers may require using their Java libraries to send and receive messages due to how they implemented the JMS specifications. Please refer to your provider documentation.