
JMS RealtimeTrigger
CertifiedStart a flow on JMS messages
JMS RealtimeTrigger
Start a flow on JMS messages
Listens to a JMS queue or topic and launches a new execution for each received message. Uses CLIENT_ACKNOWLEDGE for at-least-once delivery; payloads are deserialized with serdeType (STRING default).
type: io.kestra.plugin.jms.RealtimeTriggerExamples
Start a flow for each message on a specific JMS queue.
id: jms-realtime-flow
namespace: at.conapi.dev
tasks:
- id: log-message
type: io.kestra.plugin.core.log.Log
message: "Received from JMS: {{ trigger.data }}"
triggers:
- id: jms-trigger
type: io.kestra.plugin.jms.RealtimeTrigger
connectionFactoryConfig:
type: DIRECT
providerJarPaths: kestra:///jms/activemq-client.jar
connectionFactoryClass: org.apache.activemq.ActiveMQConnectionFactory
destination:
name: "kestra.events"
destinationType: QUEUE
Properties
connectionFactoryConfig *RequiredNon-dynamic
JMS connection factory configuration
io.kestra.plugin.jms.configuration.ConnectionFactoryConfig-Direct
ConnectionFactory class
Fully qualified class name of the JMS ConnectionFactory implementation.
Connection properties
Additional POJO properties applied to the Direct or JNDI ConnectionFactory instance.
Password for broker authentication
Rendered password used when creating the connection. Omit for JNDI if the ConnectionFactory already embeds credentials.
Provider JAR paths
One or more paths to the JMS provider JARs (e.g., file:///app/plugins/jms-libs/client.jar). If unset, all JARs under the plugins/jms-libs folder are added to the classpath.
falseUse filtered classloader
Enable only for providers that ship JMS API classes (e.g., SonicMQ/Aurea) to avoid ClassCastException by loading JMS APIs from the parent classloader. Leave disabled for typical providers like RabbitMQ, ActiveMQ, Artemis.
Username for broker authentication
Rendered username used when creating the connection. Omit for JNDI if the ConnectionFactory already embeds credentials.
io.kestra.plugin.jms.configuration.ConnectionFactoryConfig-Jndi
JNDI ConnectionFactory name
JNDI initial context factory
JNDI provider URL
Connection properties
Additional POJO properties applied to the Direct or JNDI ConnectionFactory instance.
JNDI credentials
JNDI principal
Password for broker authentication
Rendered password used when creating the connection. Omit for JNDI if the ConnectionFactory already embeds credentials.
Provider JAR paths
One or more paths to the JMS provider JARs (e.g., file:///app/plugins/jms-libs/client.jar). If unset, all JARs under the plugins/jms-libs folder are added to the classpath.
falseUse filtered classloader
Enable only for providers that ship JMS API classes (e.g., SonicMQ/Aurea) to avoid ClassCastException by loading JMS APIs from the parent classloader. Leave disabled for typical providers like RabbitMQ, ActiveMQ, Artemis.
Username for broker authentication
Rendered username used when creating the connection. Omit for JNDI if the ConnectionFactory already embeds credentials.
destination *RequiredNon-dynamic
Destination to consume
Rendered queue or topic name; destinationType selects QUEUE vs TOPIC
io.kestra.plugin.jms.JMSDestination
Destination name
Rendered JMS queue or topic name
QUEUEQUEUETOPICDestination type
QUEUE or TOPIC
allowConcurrent Non-dynamicboolean
falseSpecifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.
messageSelector Non-dynamicstring
Message selector
Optional JMS selector to filter messages server-side using SQL-92 syntax (e.g., "JMSPriority > 5 AND type = 'order'").
serdeType string
STRINGSTRINGJSONBYTESDeserialization format
STRING for text, JSON for JSON text, BYTES for binary payloads.
stopAfter Non-dynamicarray
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTEDList of execution states after which a trigger should be stopped (a.k.a. disabled).
when string
trueA condition that determines whether the trigger should run.
A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.
Outputs
contentEncoding string
The message's content encoding
contentType string
The message's content type
correlationId string
The JMS Correlation ID
data object
The deserialized message body
deliveryMode integer
The JMS delivery mode (1 for non-persistent, 2 for persistent)
expiration string
durationThe duration until the message expires
headers object
A map of message headers (JMS properties)
messageId string
The unique JMS Message ID
priority integer
The message priority level
replyTo string
The name of the destination to which a reply should be sent
replyToType string
QUEUETOPICThe type of the replyTo destination (QUEUE or TOPIC)
timestamp string
date-timeThe timestamp when the message was sent