JMS Produce

JMS Produce

Certified

Publish messages to a JMS destination

Connects with the configured JMS ConnectionFactory and publishes rendered payloads from from to the destination name as a queue or topic. Defaults use deliveryMode 2 (PERSISTENT), priority 4, timeToLive 0 (no expiry); payloads are serialized via serdeType (STRING default, JSON, BYTES) and plain strings without JSON/URI markers are sent as text.

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

Produce a List of Messages to a JMS Queue

yaml
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 for messages

Rendered queue or topic name; destinationType chooses QUEUE vs TOPIC

Definitions
destinationName*Requiredstring

Destination name

Rendered JMS queue or topic name

destinationTypestring
DefaultQUEUE
Possible Values
QUEUETOPIC

Destination type

QUEUE or TOPIC

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 kestra for internal storage files, file for host local files, and nsfile for namespace files.
  • A JSON String that will then be serialized either as a single item or a list of items.

Connection factory configuration

Configuration for connecting to the JMS broker. Supports both direct connection factory instantiation and JNDI lookup.

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.

Default2

JMS delivery mode

Rendered delivery mode flag; default 2 (PERSISTENT)

Reference (ref) of the pluginDefaults to apply to this task.

Default4

JMS priority

Rendered integer priority 0-9; default 4

DefaultSTRING
Possible Values
STRINGJSONBYTES

Serialization format for message body

Determines how message bodies are serialized: STRING for text, JSON for JSON-formatted text, BYTES for binary data.

Default0

Message time to live

Rendered TTL in milliseconds; default 0 keeps the message indefinitely

Number of messages published