# Install Aerospike Connect to JMS

## Installer

Starting with version `4.0.0`, a single installer handles both XDR 5.0 wire protocol and HTTP. Go to the [Aerospike Enterprise downloads](https://aerospike.com/download/connector/jms_out/) site to download and install the connector package for your platform. The connector is supported on both `amd64` and `arm64` architectures.

Remember to set the `protocol` based on the change notification source. See [protocol](https://aerospike.com/docs/connectors/streaming/jms/outbound/configure/service/#protocols) for details.

## Prerequisites

### Aerospike Database change notification configuration

Streaming from Aerospike requires you to configure your Aerospike database to send change notifications. For the steps, see [Configuring Change Notification for Use with Connectors](https://aerospike.com/docs/connectors/streaming/common/change-notification).

## Installation prerequisites on Linux

### Supported operating systems

The connector is supported on the following operating systems:

-   RHEL/CentOS (8 and 9)
-   Ubuntu (20.04, 22.04 and 24.04 LTS)
-   Debian (11, 12 and 13)
-   Amazon Linux 2023

### Java Runtime Environment

This connector is a Java web-application that requires Java 17 or later. Both Oracle and OpenJDK Java Runtime Environments are supported.

## Installation

The installation steps below apply to both the Debian (\*.deb) and Red Hat Enterprise Linux (RHEL) (\*.rpm) packages. Significant differences between the supported platforms are pointed out.

### Install Java

Install Java 17 or later, if it is not already installed.

RHEL or CentOS

Terminal window

```shell
sudo yum install java-17-openjdk
```

Debian or Ubuntu

Terminal window

```shell
sudo apt-get install openjdk-17-jre
```

Amazon Linux

Terminal window

```shell
sudo dnf install java-11-openjdk
```

### Install connector package

Go to the [Aerospike Enterprise downloads](https://aerospike.com/download/connector/jms_out/) site to download the connector package for your platform and install it.

**RHEL and CentOS**

Terminal window

```shell
sudo rpm -i aerospike-jms-outbound-4.2.14-1.noarch.rpm
```

**Debian and Ubuntu**

Terminal window

```shell
sudo dpkg -i aerospike-jms-outbound-4.2.14.all.deb
```

**Amazon Linux**

Terminal window

```shell
sudo rpm -i aerospike-jms-outbound-4.2.14-1.noarch.rpm
```

### Verify/update connector configuration

The connector’s configuration can be found in the `/etc/aerospike-jms-outbound/` directory. For details on how to configure the JMS provider and enable TLS, see the [configuration guide](https://aerospike.com/docs/connectors/streaming/jms/outbound/configure/).

### Start the connector

The connector package includes a Systemd service definition. The installation procedure creates an aerospike-jms-outbound service.

Enable the connector to start on system startup or reboot:

Terminal window

```shell
$ sudo systemctl enable aerospike-jms-outbound
```

To start the connector service run:

Terminal window

```shell
$ sudo systemctl start aerospike-jms-outbound
```

## Install JMS outbound connector on Kubernetes with helm-charts

If your deployment situation allows the use of Helm charts, you can install the JMS outbound connector on a Kubernetes deployment using Helm.

1.  Add the Aerospike Helm repository.
    
    Terminal window
    
    ```bash
    helm repo add aerospike https://aerospike.github.io/helm-charts --force-update
    
    helm repo update
    ```
    
2.  Create the file `values.yaml` with your JMS outbound connector configuration. The following example includes a basic JMS outbound connector configuration as part of the Helm installation.
    
    values.yaml
    
    ```yaml
    replicaCount: 3
    
    image:
    
      repository: aerospike/aerospike-jms-outbound
    
      tag: "latest"
    
    connectorConfig:
    
      service:
    
        port: 8080
    
        manage:
    
          port: 8081
    
      # The connection properties to the JMS message broker.
    
      jms:
    
        # RabbitMQ example.
    
        factory: com.rabbitmq.jms.admin.RMQConnectionFactory
    
        config:
    
          host: 127.0.0.1
    
          port: 5672
    
          username: guest
    
          password: guest
    
      # Format of the JMS destination message.
    
      format:
    
        mode: flat-json
    
        metadata-key: metadata
    
      # Aerospike record routing to a JMS destination.
    
      routing:
    
        mode: static
    
        type: queue
    
        destination: aerospike
    
      # The logging properties.
    
      logging:
    
        enable-console-logging: true
    
    connectorSecrets: []
    
    serviceAccount:
    
      create: true
    
      name: aerospike-jms-outbound
    ```
    
3.  Install the JMS outbound connector by running the following Helm command.
    
    Terminal window
    
    ```bash
    helm install aerospike-jms-outbound aerospike/aerospike-jms-outbound --values values.yaml --atomic --wait --debug --create-namespace --namespace aerospike
    ```
    

## Deploy on Docker

Aerospike provides Docker images for Aerospike Connect for JMS on Docker Hub.

Terminal window

```shell
sudo docker run \

 -v <path to local aerospike-jms-outbound.yml>:/etc/aerospike-jms-outbound/aerospike-jms-outbound.yml \

 container.aerospike.com/aerospike/aerospike-jms-outbound:latest
```

`<path to local aerospike-jms-outbound.yml>`: The path (including the name) of the configuration file in your local filesystem.

[Configure Connector](https://aerospike.com/docs/connectors/streaming/jms/outbound/configure)