Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 58 Next »

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

  • Outbound stream, also known as JMS Producer
  • Inbound stream, also know as JMS Consumer

Create Outbound Stream (JMS Producer)

Required Stream Properties

To create Outbound JMS Stream, you must:

  • set the Stream Title
  • set the Instance with AppID (=10000)
  • choose the Stream Direction: Outbound
  • choose your Ruleset File. For outbound destinations this parameter is ignored.
  • set the Connection Name (defined in connection.json files, see JMS Configurations)
  • choose the Destination Type: Queue or Topic or Alias
  • set the Destination Name: queue name or topic or alias name accordingly

Optional Stream Properties

  • JMS Connection User - it 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.
  • URI parameters - extra parameters for fine-tuning 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 (JMS Consumer)

Required Stream Properties

To create an Inbound JMS Stream, you must:

  • set the Stream Title
  • set the Instance with AppID (=10000)
  • choose the Stream Direction: Inbound
  • choose your Ruleset File to process incoming JMS messages
  • set the Connection Name (defined in connection.json files, see JMS Configurations)
  • choose the Destination Type: Queue or Topic or Alias
  • set the Destination Name: queue name or topic or alias name accordingly

Optional Stream Properties

  • 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 undersore 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"
	}
}
  • JMS Connection User - it 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. For more information refer to Message Selectors.
  • Concurrent Consumers - you can specify the default number of concurrent consumers when consuming from JMS. Note: 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.


  • These 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 and it also will be accessed in rule.


After making any change in Stream configuration, you must restart mc2 to apply all changes.

Since mc2 July release we will introduce on-the-fly ability to apply stream changes.


  • No labels