JMS RealtimeTrigger

JMS RealtimeTrigger

Certified

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).

yaml
type: io.kestra.plugin.jms.RealtimeTrigger

Start a flow for each message on a specific JMS queue.

yaml
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

JMS connection factory configuration

Definitions
connectionFactoryClass*Requiredstring

ConnectionFactory class

Fully qualified class name of the JMS ConnectionFactory implementation.

connectionPropertiesobject

Connection properties

Additional POJO properties applied to the Direct or JNDI ConnectionFactory instance.

passwordstring

Password for broker authentication

Rendered password used when creating the connection. Omit for JNDI if the ConnectionFactory already embeds credentials.

providerJarPathsarray
SubTypestring

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.

useFilteredClassLoaderbooleanstring
Defaultfalse

Use 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.

usernamestring

Username for broker authentication

Rendered username used when creating the connection. Omit for JNDI if the ConnectionFactory already embeds credentials.

jndiConnectionFactoryName*Requiredstring

JNDI ConnectionFactory name

jndiInitialContextFactory*Requiredstring

JNDI initial context factory

jndiProviderUrl*Requiredstring

JNDI provider URL

connectionPropertiesobject

Connection properties

Additional POJO properties applied to the Direct or JNDI ConnectionFactory instance.

jndiCredentialsstring

JNDI credentials

jndiPrincipalstring

JNDI principal

passwordstring

Password for broker authentication

Rendered password used when creating the connection. Omit for JNDI if the ConnectionFactory already embeds credentials.

providerJarPathsarray
SubTypestring

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.

useFilteredClassLoaderbooleanstring
Defaultfalse

Use 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.

usernamestring

Username for broker authentication

Rendered username used when creating the connection. Omit for JNDI if the ConnectionFactory already embeds credentials.

Destination to consume

Rendered queue or topic name; destinationType selects QUEUE vs TOPIC

Definitions
destinationName*Requiredstring

Destination name

Rendered JMS queue or topic name

destinationTypestring
DefaultQUEUE
Possible Values
QUEUETOPIC

Destination type

QUEUE or TOPIC

Defaultfalse

Specifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.

Message selector

Optional JMS selector to filter messages server-side using SQL-92 syntax (e.g., "JMSPriority > 5 AND type = 'order'").

DefaultSTRING
Possible Values
STRINGJSONBYTES

Deserialization format

STRING for text, JSON for JSON text, BYTES for binary payloads.

SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED

List of execution states after which a trigger should be stopped (a.k.a. disabled).

Defaulttrue

A 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.

The message's content encoding

The message's content type

The JMS Correlation ID

The deserialized message body

The JMS delivery mode (1 for non-persistent, 2 for persistent)

Formatduration

The duration until the message expires

A map of message headers (JMS properties)

The unique JMS Message ID

The message priority level

The name of the destination to which a reply should be sent

Possible Values
QUEUETOPIC

The type of the replyTo destination (QUEUE or TOPIC)

Formatdate-time

The timestamp when the message was sent