JMS Sink Connector
Type |
Sink |
Class |
|
Target System |
Messaging & Streaming (JMS) |
Maintainer |
Lenses.io (Stream Reactor) |
License |
Apache License 2.0 |
Project |
|
Download |
|
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.
-
Navigate to the releases page and select version
9.0.2. -
Download the JMS connector JAR file.
-
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
-
Follow the Creating streams documentation in order to create one stream and deploy it onto an environment.
The name of the stream will bemy_jms_topic.
The key/value types will beString/String. -
Follow the Configure and install a connector documentation to set up a new Connector-Application.
Let’s call itmy_jms_sink.
The plugin name isio.lenses.streamreactor.connect.jms.sink.JMSSinkConnector.
If a plugin isn’t available, ask a platform operator to install plugins.
Step 2 — Configure the connector
-
Provide the following minimal configuration:
topicsmy_jms_topicconnect.jms.urltcp://jms-broker.example.com:61616connect.jms.usernameYour JMS broker username
connect.jms.passwordYour JMS broker password
connect.jms.kcqlINSERT INTO myQueue SELECT * FROM my_jms_topic WITHTYPE QUEUEFor advanced options, see the official JMS sink connector documentation.
-
Authorize the
my_jms_sinksink Connector-Application to consume themy_jms_topicstream.
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.