Functional overview
From version 5.4.0 onwards, ActiveMQ comes with a enhanced shell script for starting, stopping and managing the broker in Unix environment. For basic activemq and activemq-admin scripts functionality take a look at ActiveMQ Command Line Tools Reference.
This new activemq script incorporate these two scripts into one and adds some new functionalities. On top of regular activemq and activemq-admin scripts, it adds the following features:
-
start - starts the broker in background. It saves process id in the ${ACTIVEMQ_DATA_DIR}/activemq.pid for future reference. It accepts the same command line arguments like the original activemq script, so you can do something like
Codeblock |
$ bin/activemq start xbean:conf/activemq-stomp.xml
|
-
console - starts the broker in foreground. It is basically the replacement for the old activemq script
(you can interrupt the )
- stop - stops the broker that is running in the background. It tries first to stop the broker using shutdown task. If that task doesn't return in 30 seconds (configurable), it will kill the process.
...
- status - checks if activemq process is running
(exitcode: 1 = broker is down, 0 = broker is up)
-
create - create an ACTIVEMQ_BASE directory that separates a broker instance from its binaries, i.e., it creates copies of the ActiveMQ configuration files into the command-line specified directory and points to the binaries. You can start the broker with the /bin scripts in the newly created instance.
Codeblock |
$
|
...
-
bin/activemq create /path/to/brokers/mybroker
|
-
browse - Display selected messages in a specified destination
Codeblock |
$ bin/activemq browse FOO.BAR # use broker connection from configuration
$ bin/activemq browse --amqurl tcp://localhost:61616 FOO.BAR
|
-
bstat - Performs a predefined query that displays useful statistics regarding the specified broker
-
dstat - Performs a predefined query that displays useful tabular statistics regarding the specified destination type
-
decrypt - Decrypts given text
Codeblock |
$ bin/activemq decrypt --input 'BkiT42A0CZfL1SanJIgxvQ==' --password asdasdasdasd
|
-
encrypt - Encrypts given text
Codeblock |
$ bin/activemq encrypt --password TESTPASSWORD --input FOOBAR
|
-
export - Exports a stopped brokers data files to an archive file
-
list - Lists all available brokers in the specified JMX context
-
purge - Delete selected destination's messages that matches the message selector
Codeblock |
$ bin/activemq purge FOO.BAR # use jmx access data from configuration
$ bin/activemq purge --jmxurl service:jmx:rmi:///jndi/rmi://127.0.0.1:11098/jmxrmi --jmxuser controlRole --jmxpassword abcd1234 FOO.BAR
|
-
query - Display selected broker component's attributes and statistics
Codeblock |
$ bin/activemq query # use jmx access data from configuration
$ bin/activemq query --jmxurl service:jmx:rmi:///jndi/rmi://127.0.0.1:11098/jmxrmi --jmxuser controlRole --jmxpassword abcd1234
|
Configuring the script
For ActiveMQ server to run properly some basic system variables must be set. These variables define how much memory broker will have, SSL, logging, JAAS options and similar.
Version 5.11.0 and higher
Since version 5.11.0, all configuration variables are moved to the new env script file, so that they can be easily configured at one place.
This script can be copied to /etc/default/activemq or $HOME/.activemqrc to provide system-wide settings, so the setup command has been removed. System variables set in the environment will take precedence.
To use addtional configurations for running multiple instances on the same operating system rename or symlink script to a name matching to activemq-instance-<INSTANCENAME>. This changes the configuration location to /etc/default/activemq-instance-<INSTANCENAME> and $HOME/.activemqrc-instance-<INSTANCENAME>. Configuration files in /etc have higher precedence.
Prior to version 5.11.0
...
These parameters were configurable in activemq script itself.
You could use setup command to create additional system wide scripts defaults file to configure the broker.
setup - create the specified configuration file for this Unix script. (modify the settings in this file if neccessary - the default entries look a bit garbled due to an accidentally applied bugfix in this release)
Codeblock |
|
|
./activemq setup /etc/default/activemq
|
The configuration of the script can be placed at /etc/default/activemq or $HOME/.activemqrc. Note, this is the configuration for the script not for configuring ActiveMQ.
To use addtional configurations for running multiple instances on the same operating system rename or symlink script to a name matching to activemq-instance-<INSTANCENAME>. This changes the configuration location to /etc/default/activemq-instance-<INSTANCENAME> and $HOME/.activemqrc-instance-<INSTANCENAME>. Configuration files in /etc have higher precedence.
Since 5.11.0, all configuration variables are moved to the new env script, so that they can be easily configured at one place. This script can be copied to /etc/default/activemq or $HOME/.activemqrc to provide system-wide settings, so the setup command has been removed. System variables set in the environment will take precedence.