
JMS Consume
CertifiedConsume messages from a JMS destination
JMS Consume
Consume messages from a JMS destination
Connects to a JMS queue or topic, receives messages until limits are hit, and writes them to internal storage. CLIENT_ACKNOWLEDGE is used for at-least-once delivery; set maxMessages or maxWaitTimeout to bound execution.
type: io.kestra.plugin.jms.ConsumeExamples
Consume 100 Messages from a JMS Queue
id: jms_consume
namespace: company.team
tasks:
- id: consume_from_queue
type: io.kestra.plugin.jms.Consume
connectionFactoryConfig:
type: DIRECT
providerJarPaths: kestra:///jms/activemq-client.jar
connectionFactoryClass: org.apache.activemq.ActiveMQConnectionFactory
username: admin
password: "{{ secret('AMQ_PASSWORD') }}"
destination:
name: my-queue
destinationType: QUEUE
maxMessages: 100
maxWaitTimeout: 5000
Properties
destination *
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
assets
Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.
io.kestra.core.models.assets.AssetsDeclaration
IGNOREFAILWARNAsset failure behavior
Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.
Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
The assets consumed as inputs.
io.kestra.core.models.assets.AssetIdentifier
1The assets produced as outputs.
io.kestra.plugin.ee.assets.Dataset
1150{}1150io.kestra.plugin.ee.assets.File
1150{}1150io.kestra.plugin.ee.assets.Table
1150{}1150io.kestra.plugin.ee.assets.VM
1150{}1150io.kestra.core.models.assets.External
1150{}1150io.kestra.core.models.assets.Custom
11501Custom asset type
{}1150connectionFactoryConfig
Connection factory configuration
Configuration for connecting to the JMS broker. Supports both direct connection factory instantiation and JNDI lookup.
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.
maxMessages integerstring
1Maximum messages to consume
Rendered upper bound on messages; default 1
maxWaitTimeout integerstring
0Maximum wait time (ms)
Rendered timeout in milliseconds; default 0 waits indefinitely
messageSelector string
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-formatted text, BYTES for binary data.
Outputs
count integer
Number of messages consumed
uri string
uriURI of the internal storage file containing the consumed messages