
Produce
Produce messages to a JMS queue or topic.
type: "io.kestra.plugin.jms.Produce"Examples
Produce a List of Messages to a JMS Queue
id: jms_produce
namespace: company.team
tasks:
- id: produce_to_queue
type: io.kestra.plugin.jms.Produce
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
from:
- data: "Hello World"
headers:
property1: "value1"
- data:
message: "Another message"
id: 123
Properties
destination*RequiredNon-dynamic
The destination to send messages to.
io.kestra.plugin.jms.JMSDestination
The name of the JMS queue or topic.
QUEUEQUEUETOPICThe type of the destination.
from*Requiredstringarrayobject
Structured data items, either as a map, a list of map, a URI, or a JSON string.
Structured data items can be defined in the following ways:
- A single item as a map (a document).
- A list of items as a list of maps (a list of documents).
- A URI, supported schemes are
kestrafor internal storage files,filefor host local files, andnsfilefor namespace files. - A JSON String that will then be serialized either as a single item or a list of items.
connectionFactoryConfigNon-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
Connection Factory Class
The fully qualified class name of the JMS ConnectionFactory.
falseio.kestra.plugin.jms.configuration.ConnectionFactoryConfig-Jndi
JNDI Connection Factory Name
JNDI Initial Context Factory
JNDI Provider URL
Connection Properties
Additional (Pojo) properties to set on the Direct/JNDI ConnectionFactory instance.
JNDI Credentials
JNDI Principal
The password for broker authentication.
Provider JAR Path(s)
The path to the JMS provider's JAR file(s). This can be a single path or a list of paths (JARs). (e.g., 'file:///app/plugins/jms-libs/client.jar').If not specified, all jar files in the 'jms-libs' sub folder of your plugins location will be added to the classpath.
falseUse Filtered ClassLoader
Enable this for JMS providers that bundle JMS API classes in their JAR (e.g., SonicMQ/Aurea Messenger). When enabled, JMS API classes are loaded from the parent classloader to prevent ClassCastException. Leave disabled (default: false) for well-behaved providers like RabbitMQ, ActiveMQ, Artemis, etc. Only enable this if you encounter ClassCastException with javax.jms or jakarta.jms classes.
The username for broker authentication.
This is used when creating the connection to the JMS broker. Omit for JNDI if credentials are embedded in the ConnectionFactory.
deliveryModeintegerstring
2The JMS delivery mode used to send the message (default: 2 = PERSISTENT)
priorityintegerstring
4The JMS priority used to send the message (default: 4)
serdeTypeNon-dynamicstring
STRINGSTRINGJSONBYTESThe serialization format for the message body.
Determines how message bodies are serialized. STRING for text messages, JSON for JSON-formatted text, BYTES for binary data.
timeToLiveintegerstring
0The time to live of the sent message in milliseconds (default: 0 = does not expire)
Outputs
messagesCountinteger
Number of messages published.