ActiveMQ Ingress Configuration

ActiveMQ data ingestion is available using ingress of type activemq.

Examples Repo

Example ActiveMQ configuration files showcasing all features we will discuss can be found in our Examples Repo .

Settings

The ActiveMQ settings in the configuration file are used to configure data ingestion from ActiveMQ topics and queues. Below is a detailed description of each field within the ActiveMQ settings:

Field Required Configurable Description
destination true true The topic or queue to ingress, starting with either topic:// or queue://.
contentType false true The content type of the message, accepted types: avro, csv, json, recon, xml (default plaintext).
avroSchema false true The Avro schema for the message, required if using Avro serialization.
useJndi false false Whether to use a JNDI properties file to configure the ActiveMQ client.

ActiveMQ allows fields to be set using reflection, any field with a set method on the ConnectionFactory can be set within the settings section of the ingress. Here are a few example fields that become available:

Field Required Configurable Description
brokerURL false true Connection URL used to connect to the ActiveMQ broker.
clientID false true JMS clientID to use for the created connection.
userName false true JMS userName used by connections created by this factory.

JNDI

If you prefer to configure your ActiveMQ client using JNDI then you can. Simply omit the destination field and set the useJndi field to true. This will generate a jndi.properties file alongside your server.recon, configure you connection and topic from there.

Message Structure

The message structure of received ActiveMQ messages is:

{ "id": ..., "value": {...} }

Example

The configuration below defines an ActiveMQ ingress where messages are consumed from the specified ActiveMQ topic and relayed to a singleton receiver agent.

{
  "ingress": {
    "type": "activemq",
    "settings": {
      "destination": "topic://test-topic",
      "brokerURL": "tcp://host.docker.internal:61616"
    },
    "relay": {
      "agent": "receiver"
    }
  }
}

Nstream is licensed under the Redis Source Available License 2.0 (RSALv2).