JMS channels

A JMS channel represents and carries the information needed to establish a Java Message Service connection. The properties used to create the InitialContext for JNDI will be set from information in a property file if specified. If properties are configured on the JMS channel record, they will override the property file settings.

See Configuring a JMS channel and receiver.

This is an example of the execution cycle of a JMS channel:

  1. JMS credentials, if supplied, are used to establish a connection. If they are not supplied, the connection will be established without credentials.
  2. JMSReceivers, which are receivers under a JMSChannel, carry the information needed to establish a connection and use a Java Message Service Session under the JMS channel’s connection.
  3. A new session is established for each receiver that is activated for a JMS Channel.

    This list shows additional information about JMS channels as implemented in Infor Process Automation:

    • Each active receiver has its own session but all sessions under a channel share a single (channel) connection to JMS.

    • Sessions are not shared. One consumer per session is implemented.

    • JMS point-to-point (Queue) and publish/subscribe (Topic) scenarios are supported.

    • Receivers can connect only to a single topic or queue.

    • Durable subscriptions are not supported.

    • JMSReceivers consume messages provided by JMS message providers. Receivers do not provide the ability to send messages, only to receive them.

    • Message selectors are supported and are designated on the JMSReceiver.

    • All message reception is asynchronous through MessageListeners. No provision for grouping of messages exists. Individual messages are processed without consideration of prior or subsequent messages.

    • Only TextMessage and MapMessage Message types are supported. If a message of an unsupported type is received, it will not be processed but it will be acknowledged so the provider does not try to send the message again.

    • When a message is received, information it contains, along with information on the receiver, is used to provision a workunit which is subsequently triggered. The message is then acknowledged.

    • All Message Header and Message property values will be assigned to process variables in the process.

    • If the Message is a MapMessage type, the message payload, which are name/value pairs, will be assigned to Process variables.

    • If the Message is a TextMessage type, the message payload, which are text, will be loaded into the WorkunitInputData.

    • Only AUTO_ACKNOWLEDGE and CLIENT_ACKNOWLEDGE message acknowledgement modes are supported.

      See JMS acknowledge modes as implemented in Infor Process Automation.