JMS Sink Connector

Type

Sink

Class

io.lenses.streamreactor.connect.jms.sink.JMSSinkConnector

Target System

Messaging & Streaming (JMS)

Maintainer

Lenses.io (Stream Reactor)

License

Apache License 2.0

Project

github.com/lensesio/stream-reactor

Download

GitHub Releases

This page documents version 9.0.2. Newer versions should be compatible unless there are breaking changes, but field names or default values may differ. If you notice discrepancies, please contact Axual Support.

Description

The JMS Sink Connector consumes records from Kafka topics and writes them as messages to a JMS-compatible broker.

It is part of the open-source github.com/lensesio/stream-reactor project.

JMS (Java Message Service) is a standard Java API specification for message-oriented middleware. It is not a broker itself — it defines a common interface that messaging providers implement, allowing Java applications to send and receive messages in a vendor-agnostic way. The connector uses KCQL (Kafka Query Language) to map Kafka topics to JMS destinations (queues or topics).

Compatible JMS providers include: Apache ActiveMQ / ActiveMQ Artemis, IBM MQ, Solace PubSub+, RabbitMQ (via JMS client), Oracle WebLogic JMS, Red Hat AMQ, and TIBCO EMS.

Features

  • Write Kafka records as messages to JMS queues or topics

  • Configurable mapping between Kafka topics and JMS destinations via KCQL

  • Support for Text and Bytes message output types

  • SSL/TLS connection support

When to Use

  • You need to forward Kafka records to a JMS-compatible broker.

  • You are integrating a Kafka pipeline with a legacy JMS-based system.

  • You want a vendor-neutral connector that works across multiple JMS providers.

When NOT to Use

  • Your target system has a dedicated connector (e.g. IBM MQ, AMQP) — prefer the purpose-built connector for better feature coverage.

  • Your broker is not JMS-compatible.

Installation

The connector is available from the Lenses Stream Reactor releases page.

  1. Navigate to the releases page and select version 9.0.2.

  2. Download the JMS connector JAR file.

  3. Place the JMS client library for your broker (e.g. activemq-all.jar) in the same plugin directory.

For installation steps, see Installing Connector Plugins.

Configuration

For the complete configuration reference, see the official JMS sink connector documentation.

To configure a connector in Axual Self-Service, see Starting Connectors. TIP: For Infrastructure-as-Code deployment, see the Axual Kafka Connect Boilerplates for Terraform and Management API boilerplates.

Getting Started

Prerequisites

  • A running JMS broker reachable from the Kafka Connect cluster.

  • The JMS client library for your broker placed in the connector plugin directory.

  • An Axual stream to consume events from. See Creating streams if you need to create one.

Steps

Step 1 — Create a connector application

  1. Follow the Creating streams documentation in order to create one stream and deploy it onto an environment.
    The name of the stream will be my_jms_topic.
    The key/value types will be String/String.

  2. Follow the Configure and install a connector documentation to set up a new Connector-Application.
    Let’s call it my_jms_sink.
    The plugin name is io.lenses.streamreactor.connect.jms.sink.JMSSinkConnector.
    If a plugin isn’t available, ask a platform operator to install plugins.

Step 2 — Configure the connector

  1. Provide the following minimal configuration:

    topics

    my_jms_topic

    connect.jms.url

    tcp://jms-broker.example.com:61616

    connect.jms.username

    Your JMS broker username

    connect.jms.password

    Your JMS broker password

    connect.jms.kcql

    INSERT INTO myQueue SELECT * FROM my_jms_topic WITHTYPE QUEUE

    For advanced options, see the official JMS sink connector documentation.

  2. Authorize the my_jms_sink sink Connector-Application to consume the my_jms_topic stream.

Step 3 — Start the connector

Start the connector application from Axual Self-Service.

Step 4 — Verify

Check your JMS broker to confirm messages are arriving in the configured queue or topic.

Cleanup

When you are done:

  1. Stop the connector application in Axual Self-Service.

  2. Remove stream access for the application if no longer needed.

Known limitations

  • JMS provider-specific behaviour may vary — test against your specific broker version.

  • The JMS client library for your provider (e.g. activemq-all.jar, IBM MQ JMS client) must be placed in the connector plugin directory alongside the Stream Reactor JAR.

Examples

Minimal configuration

{
  "name": "my-jms-sink",
  "config": {
    "connector.class": "io.lenses.streamreactor.connect.jms.sink.JMSSinkConnector",
    "connect.jms.url": "tcp://jms-broker.example.com:61616",
    "connect.jms.username": "jms_user",
    "connect.jms.password": "Jms@Password2024",
    "topics": "my_jms_topic",
    "connect.jms.kcql": "INSERT INTO myQueue SELECT * FROM myTopic WITHTYPE QUEUE"
  }
}

License

JMS Connector is licensed under the Apache License, Version 2.0.