
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 *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
connectionFactoryConfig Non-dynamic
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'").
pluginDefaultsRef Non-dynamicstring
Reference (ref) of the pluginDefaults to apply to this task.
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