Create Eagle JMS Stream Configurations

  • The MC2 plugin enables you to define the format of two streams of JMS components:

  • Outbound stream, also known as JMS Producer

  • Inbound stream, also know as JMS Consumer

Create an Outbound Stream

You can create the outbound stream, also known as the JMS producer.

To create Outbound JMS Stream:

  1. Enter the Message Stream Title.

  2. Select the Instance with AppID (=10000).

  3. In the Stream Direction field select Outbound.

  4. Choose your Ruleset File. For outbound destinations this parameter is ignored.

  5. Set the Connection Name
    (This is defined in connection.json files, see JMS Configurations).

  6. Choose the Destination Type: Queue, Topic or Alias.

  7. Set the Destination Name: Select queue name, topic or alias name.

Optional Stream Properties

The following are optional and not required for creating an outbound stream.

  • JMS Connection User - the login/user name which you have to provide to connect to JMS Broker if this one was set up to check user authorization.

  • JMS Connection Password - the connection password.

  • URI parameters - extra parameters for fine-tuning the JMS Producer.

To add some URI parameters of Camel JMS Component described in Camel documentation Apache Camel JMS Component, you must construct a string that corresponds with following format of URI: parameterName1=value1&parameterName2=value2......

JMS Connection User Name and JMS Connection Password

These parameters have scope of connection name not of Eagle JMS Stream. It means that if you have several JMS streams for the same connection name parameter then you must use the same credentials for these JMS streams. To use other credentials, you must create a new connection in the connection.json file and then use it in the target JMS Stream.

Create Inbound Stream

You can create the inbound stream, also known as the JMS consumer.

To create an Inbound JMS Stream:

  1. Enter the Message Stream Title.

  2. Set the Instance with AppID (=10000).

  3. In the Stream Direction field select Inbound.

  4. Choose your Ruleset File to process incoming JMS messages.

  5. Set the Connection Name (defined in connection.json files, see JMS Configurations).

  6. Select the Destination Type: Queue or Topic or Alias.

  7. Enter the Destination Name: queue name, topic or alias name.

Optional Stream Properties

The following are optional and not required for creating an inbound stream.

  • MC events log - scope of information to print in MC log

  • Sequential Reading - this option allows us make current Eagle JMS Stream as single JMS Consumer (single reader) across cluster.

  • Acceptable values: Y/N or empty value means N.

  • Supported JMS destination types: Queue & Topic.

  • Durable Subscription Name - this option allows us enable Topic Durable Subscription mode for current Eagle JMS Stream. A durable subscriber is a message consumer that receives all messages published on a topic, including messages published while the subscriber is inactive. In short it means that we want to have many topic subscribers, but additionally add persistence for our messages.

  • Acceptable values: alphanumeric and underscore characters. Empty value means that option is disabled. This option can be enabled if and only if Destination Type parameter is TOPIC, otherwise you will get Sequential-Reading JMS Consumer for appropriate Queue.

You must use component name without polled connection settings for the Connection Name you are going to set for Durable Topic Subscription Stream. These components are named as ***-no-pool

For example, you can create a new connection for Durable Topic Subscription Stream connection.json, using eagle-amq-no-pool as the component name:

{ "ConnectionName": "myactivemq3-tds.connection", "ComponentName": "eagle-amq-no-pool", "Parameters": { "brokerURL": "tcp://inno-jenever03.eagleinvsys.com:61616" } }

Optional Stream Properties

  • JMS Connection User - This is login/user name which you have to provide to connect to JMS Broker if this one was set up to check user authorization.

  • JMS Connection Password -The connection password.

  • Consumer SelectorA JMS message selector allows the user to specify, by header field references and property references, the messages it is interested in.

  • Concurrent Consumers - You can specify the default number of concurrent consumers when consuming from JMS. 

For ActiveMQ we should use the number of concurrent consumers calculated by this equation: 

Σ consumers_for_stream + 1 = "MaximumActiveSessionPerConnection" (for PooledConnectionFactory class for ActiveMQ)

URI parameters - extra parameters for fine-tuning JMS Consumer.

To add some URI parameters of Camel JMS Component being described in Camel documentation, you have to construct a string that corresponds with following format of URI: parameterName1=value1&parameterName2=value2......

RequestReply JMS Consumer pattern - to enable RequestReply JMS consumer behavior (sending the reply to the appropriate queue), you have to set replyTo URI parameter into URI parameters field of Stream properties and define the name of queue: replyTo=<destination name>.

Rule Variables

IN_MESSAGE - this variable will contain consumed JMS message.

The following JMS Headers can be accessed in rule preceded by header_* prefix:

breadcrumbId
CamelFileName
CamelFilePath
EagleStreamName
JMSCorrelationID
JMSCorrelationIDAsBytes
JMSMessageID

Also you can define your own JMS Header that can be accessed in the rule as well.