Skip to main content

JMS Receiver

JMS Receiver is an event source. It consumes messages from a queue or topic on the selected JMS Connection and starts one workflow run per message.

The receiver controls when the broker is told a message was handled. Acknowledgement Mode chooses between acknowledging on delivery, acknowledging once the workflow succeeds, or acknowledging early from the workflow itself with Acknowledge.

It also handles messages the broker keeps redelivering. Poison Delivery Cap bounds how many delivery attempts a message gets before it is routed to a separate poison destination.

The activity has three tabs: Configuration, Advanced, and Output.

Configuration

FieldRequiredDescription
NameOptionalName of the component.
DescriptionOptionalDescription of the component.
JMS ConnectionOptionalThe JMS connection resource to consume from.
Destination TypeOptionalQueue or Topic. Defaults to Queue.
Destination NameOptionalDirect physical queue or topic name by default. Enable Destination Name Is JNDI on the Advanced tab to treat this as a JNDI binding name resolved through the selected JMS Connection's JNDI resource.
Expected Message TypeOptionalDesign-time schema and mapping hint. Defaults to Auto.
Acknowledgement ModeOptionalWhen the broker is told the message was handled. Defaults to On workflow success.
Message SelectorOptionalJMS selector expression used to filter messages.
Durable Subscription NameOptionalTopic only: makes the subscription durable.
Client IDOptionalTopic only: required for a durable subscription; must be unique.
Unsubscribe On StopOptionalTopic only: remove the durable subscription when the trigger stops. Defaults to cleared.

Expected Message Type

Auto, Text, Map, Bytes, Object, or Stream. This is a design-time schema and mapping hint — Auto decodes the actual JMS message subtype delivered by the broker.

Acknowledgement Mode

ModeBehaviour
On workflow successAcknowledge after the workflow succeeds. This is the default.
Manual / early acknowledgeThe workflow may acknowledge early using Acknowledge; if it does not, successful workflow completion still acknowledges.
Auto acknowledgeThe provider acknowledges on delivery.

Manual mode is what populates ackToken in the output. That token is the input Acknowledge consumes.

Topic subscriptions

Durable Subscription Name, Client ID, and Unsubscribe On Stop apply only when Destination Type is Topic. A durable subscription needs both a subscription name and a unique client ID.

Advanced

FieldRequiredDescription
TransactedOptionalCommit on success, roll back on failure. Defaults to cleared.
Destination Name Is JNDIOptionalWhen enabled, Destination Name is resolved from the JMS connection's JNDI context instead of used as a physical queue or topic name. Defaults to cleared.
PropertiesOptionalCustom JMS application properties. These are separate from standard JMS headers and can be typed.
Message Group Order KeyOptionalJMS message-group or order key. When set, managed runtime can preserve per-key ordering.
Poison Delivery CapOptionalMaximum broker delivery count before routing to the poison destination. Defaults to 10; set 0 to disable source-level poison handling.
Poison Destination TypeOptionalDestination type for capped or redelivered messages. Queue or Topic, defaults to Queue.
Poison Destination NameOptionalQueue or topic used to preserve capped poison messages. Leave blank to use provider or work-queue fallback behavior.

Output

The activity returns a jmsOutput object.

FieldData TypeDescription
payloadObjectDecoded JMS payload. Map and Object messages expose extensible JSON fields; Text, Auto, Bytes, and Stream are transformed to string by the selected message type.
messageHeadersObjectStandard JMS headers plus configured and custom JMS properties.
propertiesObjectConfigured JMS application properties. These are user-defined JMS properties, separate from standard JMS headers.
ackTokenStringManual acknowledgement token. Present only when Acknowledgement Mode is Manual / early acknowledge.

messageHeaders

FieldData TypeDescription
messageIdStringJMSMessageID assigned by the broker when available.
correlationIdStringJMSCorrelationID used for request/reply correlation when present.
destinationStringJMSDestination queue or topic name when the provider exposes it.
replyToStringJMSReplyTo destination name when present.
typeStringJMSType value when present.
priorityIntegerJMSPriority.
deliveryModeIntegerJMSDeliveryMode.
timestampIntegerJMSTimestamp as epoch milliseconds.
expirationIntegerJMSExpiration as epoch milliseconds; 0 means no expiration.
redeliveredBooleanJMSRedelivered flag.