Apache ActiveMQ Setup—Legacy GermainUX Releases
Important
Apache ActiveMQ applies only to GermainUX releases earlier than 2024.2.
Kafka replaces ActiveMQ in GermainUX 2024.2 and later. Do not install ActiveMQ for a current GermainUX deployment unless Germain Software explicitly confirms that your release requires it.
For current deployments, see Apache Kafka Setup.
🔍 Overview
In legacy GermainUX architectures, ActiveMQ runs as a separate message broker and enables communication between GermainUX Enterprise and GermainUX Engines or Nodes.
ActiveMQ must be running and accessible before GermainUX Enterprise services and Engines start.
⚙️ Before You Begin
Confirm with Germain Software:
|
Item |
|---|
|
That your GermainUX release requires ActiveMQ |
|
The supported ActiveMQ Classic version |
|
The required Java version |
|
Broker hostname and port |
|
Authentication and TLS requirements |
|
Queue and topic configuration |
|
High-availability requirements |
|
Migration path to Kafka |
ActiveMQ Classic 5.17 or later may be supported for applicable legacy GermainUX releases. Confirm the exact version before installation.
📋 Requirements
Prepare:
|
Requirement |
|---|
|
A supported 64-bit operating system |
|
Supported Java runtime |
|
Supported ActiveMQ Classic package |
|
GermainUX Service distribution |
|
Dedicated service account |
|
Sufficient disk space for messages and logs |
|
Required firewall rules |
|
DNS and TLS certificates |
|
Backup of the existing broker configuration when upgrading |
The commonly used OpenWire port is:
61616
Use the actual port configured in your environment.
⬇️ Download ActiveMQ
Download the approved ActiveMQ Classic release from the Apache ActiveMQ website.
Use only the version approved for the installed GermainUX release.
Verify the downloaded archive using the checksum or signature published by Apache.
🔧 Install ActiveMQ
|
Step |
|---|
|
Extract the ActiveMQ archive to the approved installation directory. |
|
Assign ownership to the dedicated service account. |
|
Restrict file permissions. |
|
Confirm the Java runtime. |
|
Create separate directories for: Configuration; Persistent messages; Logs; Temporary files |
|
Confirm network access between ActiveMQ and the GermainUX components. |
Do not run ActiveMQ as root, a domain administrator, or a personal user account.
📁 Apply the GermainUX Configuration
The GermainUX Service distribution includes an ActiveMQ configuration file under:
ServiceDistribution/install/activemq
Back up the original ActiveMQ configuration:
conf/activemq.xml
Then replace or merge it with the GermainUX-provided configuration for your release.
Before starting ActiveMQ, review:
|
Configuration Item |
|---|
|
Broker name |
|
OpenWire connector |
|
Queue and topic definitions |
|
Persistent-message storage |
|
Memory limits |
|
Disk limits |
|
Authentication |
|
TLS |
|
Network interfaces |
|
Management-console access |
|
Log settings |
Do not expose the broker or its management console to untrusted networks.
🔒 Configure Security
Before production use:
|
Action |
|---|
|
Replace all default credentials. |
|
Enable broker authentication. |
|
Use dedicated GermainUX service accounts. |
|
Apply least-privilege authorization. |
|
Enable TLS for broker connections where supported. |
|
Restrict port |
|
Restrict or disable the management console. |
|
Store credentials securely. |
|
Protect persistent messages and logs. |
|
Enable audit or security logging when required. |
Avoid unencrypted broker URLs for communication across untrusted or segmented networks.
⚙️ Configure GermainUX
The legacy broker URL is stored under:
/config/germain/application/germain.messaging.brokerUrl
Example structure:
set /config/germain/application/germain.messaging.brokerUrl "failover:(ssl://activemq.example.com:61616)"
Use the protocol, hostname, port, authentication, and TLS settings approved for your environment.
Do not store production passwords in scripts or source control.
🖥️ Run ActiveMQ on Windows
Install ActiveMQ as a Windows service using the service wrapper included with the approved ActiveMQ distribution.
After installation:
-
Open the Windows Services console.
-
Locate the ActiveMQ service.
-
Configure the dedicated service account.
-
Set the startup type to Automatic.
-
Start the service.
-
Confirm that it remains running.
-
Review the ActiveMQ logs.
The exact service-installation command depends on the ActiveMQ package and system architecture.
🐧 Run ActiveMQ on Linux or Unix
From the ActiveMQ installation directory:
bin/activemq start xbean:conf/activemq.conf
Check its status:
bin/activemq status
Stop it gracefully:
bin/activemq stop
For production, manage ActiveMQ through the operating system’s approved service manager.
⬆️ Startup Order
Start the legacy GermainUX environment in this order:
|
Order |
Service |
|---|---|
|
1 |
Datastore |
|
2 |
ZooKeeper |
|
3 |
ActiveMQ |
|
4 |
Hazelcast when required |
|
5 |
GermainUX Enterprise services |
|
6 |
GermainUX Engines or Nodes |
During shutdown, reverse the order so producers and consumers stop before the broker.
✅ Validate the Deployment
Confirm that:
|
Check |
|---|
|
ActiveMQ starts without configuration errors. |
|
The expected connector is listening. |
|
Authentication succeeds. |
|
TLS certificates are valid when TLS is enabled. |
|
GermainUX Enterprise connects to the broker. |
|
GermainUX Engines connect successfully. |
|
Required queues and topics are created. |
|
Messages are consumed rather than accumulating. |
|
Persistent-message storage remains healthy. |
|
No recurring connection or authorization errors appear in logs. |
|
Monitoring data reaches GermainUX dashboards. |
👁️ Monitor ActiveMQ
Monitor:
|
Metric |
|---|
|
Broker availability |
|
Queue depth |
|
Oldest-message age |
|
Enqueue and dequeue rates |
|
Consumer count |
|
Memory utilization |
|
Persistent-store utilization |
|
Temporary-store utilization |
|
Disk capacity |
|
Connection failures |
|
Dead-letter queues |
Unexpected queue growth usually indicates a failed or slow consumer and should be investigated before disk capacity is exhausted.
🚚 Migration to Kafka
Organizations running a legacy ActiveMQ-based GermainUX release should plan migration to a supported Kafka-based release.
The migration may require changes to:
|
Area |
|---|
|
GermainUX Enterprise |
|
Messaging configuration |
|
Service startup order |
|
Network ports |
|
Monitoring |
|
High availability |
|
Operational procedures |
Do not remove ActiveMQ until the upgraded GermainUX environment has been validated end to end.
For legacy ActiveMQ configuration or Kafka migration assistance, contact Germain Software.
Service: Enterprise
Feature Availability: 2024.1