JMS Source Connector

Type

Source

Class

io.lenses.streamreactor.connect.jms.source.JMSSourceConnector

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 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.

  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 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

  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_source_stream.
    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_source.
    The plugin name is io.lenses.streamreactor.connect.jms.source.JMSSourceConnector.
    If a plugin isn’t available, ask a platform operator to install plugins.

Step 2 — Configure the connector

  1. Provide the following minimal configuration:

    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 my_jms_source_stream SELECT * FROM myInputQueue WITHTYPE QUEUE

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

  2. Authorize the my_jms_source source Connector-Application to produce to the my_jms_source_stream stream.

Step 3 — Start the connector

Start the connector application from Axual Self-Service.

Step 4 — Verify

In Axual Self-Service, use stream-browse on my_jms_source_stream to confirm records from the JMS queue are arriving.

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-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.