JMS Source Connector
Type |
Source |
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 Source Connector reads messages from a JMS-compatible broker and publishes them as records to Kafka topics.
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 JMS destinations (queues or topics) to Kafka 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
-
Read messages from JMS queues or topics
-
Configurable mapping between JMS destinations and Kafka topics via KCQL
-
Support for Text, Bytes, Map, and Object message types
-
SSL/TLS connection support
When to Use
-
You need to ingest messages from a JMS-compatible broker into Kafka.
-
You are bridging a legacy JMS-based messaging system with a Kafka pipeline.
-
You want a vendor-neutral connector that works across multiple JMS providers.
When NOT to Use
-
Your source system has a dedicated connector (e.g. IBM MQ, MQTT, 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 source 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 where the connector will produce events. 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_source_stream.
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_source.
The plugin name isio.lenses.streamreactor.connect.jms.source.JMSSourceConnector.
If a plugin isn’t available, ask a platform operator to install plugins.
Step 2 — Configure the connector
-
Provide the following minimal configuration:
connect.jms.urltcp://jms-broker.example.com:61616connect.jms.usernameYour JMS broker username
connect.jms.passwordYour JMS broker password
connect.jms.kcqlINSERT INTO my_jms_source_stream SELECT * FROM myInputQueue WITHTYPE QUEUEFor advanced options, see the official JMS source connector documentation.
-
Authorize the
my_jms_sourcesource Connector-Application to produce to themy_jms_source_streamstream.
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-source",
"config": {
"connector.class": "io.lenses.streamreactor.connect.jms.source.JMSSourceConnector",
"connect.jms.url": "tcp://jms-broker.example.com:61616",
"connect.jms.username": "jms_user",
"connect.jms.password": "Jms@Password2024",
"connect.jms.kcql": "INSERT INTO my_jms_kafka_topic SELECT * FROM myInputQueue WITHTYPE QUEUE"
}
}
License
JMS Connector is licensed under the Apache License, Version 2.0.