Installation
Requirements
SwiftMQ requires Java 11 or later.
The Streams Swiftlet requires a JavaScript scripting engine which is part of the JDK up to Java 14 (Nashorn scripting engine). From Java 15 onwards the Nashorn scripting engine has been removed from the JDK. SwiftMQ detects that during startup and disables the Streams Swiftlet automatically. So, all functionality provided from this Swiftlet like the message scheduler will be unavailable.
To use Java 15 or later with Streams Swiftlet, you need to run SwiftMQ with GraalVM CE which is a next-generation polyglot JVM, based on the standard OpenJDK and provided by Oracle. SwiftMQ has been highly optimized for GraalVM and we recommend using it instead of the standard OpenJDK.
GraalVM CE is free and can be obtained from https://graalvm.org. If you use GraalVM 22.2.0 or later, you need to install the JavaScript engine separately:
$JAVA_HOME/bin/gu install js
Installing GraalVM with the install
script
Since 12.5.0
The install
script is located in the scripts
folder of the distribution and can be used to automatically install the latest tested GraalVM used from this router only.
Using a Web Proxy
Before you invoke it, check whether your host uses a web proxy. In that case, you need to set environment variables (the values are examples) before you invoke the script.
Unix / MacOS:
export proxyhost=192.168.178.34
export proxyport=9080
Windows (PowerShell):
$env:proxyhost='192.168.178.34'
$env:proxyport='9080'
Windows (Terminal CMD.EXE):
set proxyhost=192.168.178.34
set proxyport=9080
Invoking the install script
Invoke the script with
./install [-d]
If you specify -d
, a prior installation of GraalVM will be removed before install.
The script downloads GraalVM and installs Graal.js to execute SwiftMQ Streams. On MacOS you will be asked to enter the sudo
password to remove the quarantine attributes.
Installation from an Archive
Distribution Content
After you have unpacked the archive, you will find the following directory structure below the distribution's top-level directory:
Directory | Content |
---|---|
| Self signed TLS certificates and server/client key stores. |
| All dynamic data of the router like configuration, logs, persistent store |
| jar files |
| jar files and config meta data of all Kernel Swiftlets |
| Extension Swiftlets JMS, AMQP, JavaMail Bridges and Replicator and Kernel Swiftlet replacements Authentication JDBC and Store JDBC. |
| SwiftMQ samples |
| Shell scripts to start the router and cli |
| SwiftMQ system streams |
Using a Web Proxy
Since 12.5.0
SwiftMQ normally does not connect to the outside world, except for routing connections. However, if you are using SwiftMQ Streams (or Flow Director flows) on that router which opens REST connections via http/s, you need to set the web proxy as shown here.
Starting the Router
Go to the scripts
directory and start the router as follows:
./router [<preconfig>]
If you are starting it under Windows and use preconfig files, please set it in quotes!
Running SwiftMQ UR as Docker Container
Difference to SwiftMQ CE
The only difference to SwiftMQ CE is that SwiftMQ UR is not available in the Docker registry but must be downloaded as a tar.gz
archive. Instead of the docker pull
command use
docker load < <tar.gz archive>
Then reference the Docker image as
swiftmq-ur:<version>
(without iitsoftware/
), i.e. swiftmq-ur:12.1.0
in your docker
or docker-compose.yml
.
SwiftMQ UR deploys all available Extension Swiftlets during the first startup. You need to stop and start the Docker container to apply preconfig files for Extension Swiftlets after the initial deployment.
For further information on SwiftMQ on Docker have a look at the SwiftMQ CE installation.
Standard Configuration
The standard configuration of SwiftMQ UR is identical with SwiftMQ CE.
Starting CLI
To start CLI, SwiftMQ's command-line interface, perform a
./cli
from the scripts
directory. As username/password press the return key (anonymous) or use admin
, password secret
.
Examples
SwiftMQ UR contains the same examples as SwiftMQ CE but adds those for Filetransfer over JMS.