2014-12-11 07:17:29 -05:00
|
|
|
# Using the Server
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
This chapter will familiarise you with how to use the Apache ActiveMQ Artemis
|
|
|
|
server.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
|
|
|
We'll show where it is, how to start and stop it, and we'll describe the
|
|
|
|
directory layout and what all the files are and what they do.
|
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
For the remainder of this chapter when we talk about the Apache ActiveMQ
|
|
|
|
Artemis server we mean the Apache ActiveMQ Artemis standalone server, in its
|
|
|
|
default configuration with a JMS Service enabled.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2015-04-15 18:45:37 -04:00
|
|
|
This document will refer to the full path of the directory where the ActiveMQ
|
2015-04-29 09:28:11 -04:00
|
|
|
distribution has been extracted to as `${ARTEMIS_HOME}` directory.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-08 15:46:38 -05:00
|
|
|
## Installation
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
After downloading the distribution, the following highlights some important
|
|
|
|
folders on the distribution:
|
2015-05-21 11:51:48 -04:00
|
|
|
|
|
|
|
|___ bin
|
|
|
|
|
|
|
|
|
|___ examples
|
2018-03-08 15:46:38 -05:00
|
|
|
| |___ common
|
|
|
|
| |___ features
|
|
|
|
| |___ perf
|
|
|
|
| |___ protocols
|
2015-05-21 11:51:48 -04:00
|
|
|
|
|
|
|
|
|___ lib
|
2018-03-08 15:46:38 -05:00
|
|
|
| |___ client
|
2015-05-21 11:51:48 -04:00
|
|
|
|
|
|
|
|
|___ schema
|
2018-03-08 15:46:38 -05:00
|
|
|
|
|
|
|
|
|___ web
|
|
|
|
|___ api
|
|
|
|
|___ hacking-guide
|
|
|
|
|___ migration-guide
|
|
|
|
|___ user-manual
|
2015-05-21 11:51:48 -04:00
|
|
|
|
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
- `bin` - binaries and scripts needed to run ActiveMQ Artemis.
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
- `examples` - All manner of examples. Please refer to the [examples](examples.md)
|
|
|
|
chapter for details on how to run them.
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
- `lib` - jars and libraries needed to run ActiveMQ Artemis
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
- `schema` - XML Schemas used to validate ActiveMQ Artemis configuration files
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
- `web` - The folder where the web context is loaded when the broker runs.
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
- `api` - The api documentation is placed under the web folder.
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
- `user-manual` - The user manual is placed under the web folder.
|
2015-05-21 11:51:48 -04:00
|
|
|
|
|
|
|
|
2015-04-15 18:45:37 -04:00
|
|
|
## Creating a Broker Instance
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2015-04-15 18:45:37 -04:00
|
|
|
A broker instance is the directory containing all the configuration and runtime
|
2018-03-09 10:07:38 -05:00
|
|
|
data, such as logs and data files, associated with a broker process. It is
|
|
|
|
recommended that you do *not* create the instance directory under
|
|
|
|
`${ARTEMIS_HOME}`. This separation is encouraged so that you can more easily
|
|
|
|
upgrade when the next version of ActiveMQ Artemis is released.
|
|
|
|
|
|
|
|
On Unix systems, it is a common convention to store this kind of runtime data
|
|
|
|
under the `/var/lib` directory. For example, to create an instance at
|
|
|
|
'/var/lib/mybroker', run the following commands in your command line shell:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
cd /var/lib
|
|
|
|
${ARTEMIS_HOME}/bin/artemis create mybroker
|
|
|
|
```
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2015-04-15 18:45:37 -04:00
|
|
|
A broker instance directory will contain the following sub directories:
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
- `bin`: holds execution scripts associated with this instance.
|
|
|
|
- `etc`: hold the instance configuration files
|
|
|
|
- `data`: holds the data files used for storing persistent messages
|
|
|
|
- `log`: holds rotating log files
|
|
|
|
- `tmp`: holds temporary files that are safe to delete between broker runs
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
At this point you may want to adjust the default configuration located in the
|
|
|
|
`etc` directory.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-08 15:46:38 -05:00
|
|
|
### Options
|
2018-03-09 10:07:38 -05:00
|
|
|
|
2015-05-21 11:51:48 -04:00
|
|
|
There are several options you can use when creating an instance.
|
|
|
|
|
|
|
|
For a full list of updated properties always use:
|
|
|
|
|
|
|
|
```
|
|
|
|
$./artemis help create
|
|
|
|
NAME
|
|
|
|
artemis create - creates a new broker instance
|
|
|
|
|
|
|
|
SYNOPSIS
|
2017-02-08 16:23:52 -05:00
|
|
|
artemis create [--addresses <addresses>] [--aio] [--allow-anonymous]
|
2017-04-24 03:49:32 -04:00
|
|
|
[--autocreate] [--blocking] [--cluster-password <clusterPassword>]
|
2017-02-08 16:23:52 -05:00
|
|
|
[--cluster-user <clusterUser>] [--clustered] [--data <data>]
|
|
|
|
[--default-port <defaultPort>] [--disable-persistence]
|
2018-01-26 09:26:47 -05:00
|
|
|
[--encoding <encoding>] [--etc <etc>] [--failover-on-shutdown] [--force]
|
2017-04-24 03:49:32 -04:00
|
|
|
[--global-max-size <globalMaxSize>] [--home <home>] [--host <host>]
|
|
|
|
[--http-host <httpHost>] [--http-port <httpPort>]
|
2017-02-08 16:23:52 -05:00
|
|
|
[--java-options <javaOptions>] [--mapped] [--max-hops <maxHops>]
|
|
|
|
[--message-load-balancing <messageLoadBalancing>] [--name <name>]
|
|
|
|
[--nio] [--no-amqp-acceptor] [--no-autocreate] [--no-autotune]
|
|
|
|
[--no-fsync] [--no-hornetq-acceptor] [--no-mqtt-acceptor]
|
2017-04-24 03:49:32 -04:00
|
|
|
[--no-stomp-acceptor] [--no-web] [--paging] [--password <password>]
|
|
|
|
[--ping <ping>] [--port-offset <portOffset>] [--queues <queues>]
|
|
|
|
[--replicated] [--require-login] [--role <role>] [--shared-store]
|
|
|
|
[--silent] [--slave] [--ssl-key <sslKey>]
|
|
|
|
[--ssl-key-password <sslKeyPassword>] [--ssl-trust <sslTrust>]
|
|
|
|
[--ssl-trust-password <sslTrustPassword>] [--use-client-auth]
|
|
|
|
[--user <user>] [--verbose] [--] <directory>
|
2015-05-21 11:51:48 -04:00
|
|
|
|
|
|
|
OPTIONS
|
2017-02-08 16:23:52 -05:00
|
|
|
--addresses <addresses>
|
2017-04-24 03:49:32 -04:00
|
|
|
Comma separated list of addresses
|
2017-02-08 16:23:52 -05:00
|
|
|
|
|
|
|
--aio
|
2017-04-24 03:49:32 -04:00
|
|
|
Sets the journal as asyncio.
|
2017-02-08 16:23:52 -05:00
|
|
|
|
2015-05-21 11:51:48 -04:00
|
|
|
--allow-anonymous
|
2017-02-08 16:23:52 -05:00
|
|
|
Enables anonymous configuration on security, opposite of
|
|
|
|
--require-login (Default: input)
|
|
|
|
|
|
|
|
--autocreate
|
|
|
|
Auto create addresses. (default: true)
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2017-04-24 03:49:32 -04:00
|
|
|
--blocking
|
|
|
|
Block producers when address becomes full, opposite of --paging
|
|
|
|
(Default: false)
|
|
|
|
|
2015-05-21 11:51:48 -04:00
|
|
|
--cluster-password <clusterPassword>
|
|
|
|
The cluster password to use for clustering. (Default: input)
|
|
|
|
|
|
|
|
--cluster-user <clusterUser>
|
|
|
|
The cluster user to use for clustering. (Default: input)
|
|
|
|
|
|
|
|
--clustered
|
|
|
|
Enable clustering
|
|
|
|
|
|
|
|
--data <data>
|
2018-01-26 09:26:47 -05:00
|
|
|
Directory where ActiveMQ data are stored. Paths can be absolute or
|
|
|
|
relative to artemis.instance directory ('data' by default)
|
2017-02-08 16:23:52 -05:00
|
|
|
|
|
|
|
--default-port <defaultPort>
|
|
|
|
The port number to use for the main 'artemis' acceptor (Default:
|
|
|
|
61616)
|
|
|
|
|
|
|
|
--disable-persistence
|
|
|
|
Disable message persistence to the journal
|
2015-05-21 11:51:48 -04:00
|
|
|
|
|
|
|
--encoding <encoding>
|
|
|
|
The encoding that text files should use
|
|
|
|
|
2018-01-26 09:26:47 -05:00
|
|
|
--etc <etc>
|
|
|
|
Directory where ActiveMQ configuration is located. Paths can be absolute or
|
|
|
|
relative to artemis.instance directory ('etc' by default)
|
|
|
|
|
2017-02-08 16:23:52 -05:00
|
|
|
--failover-on-shutdown
|
|
|
|
Valid for shared store: will shutdown trigger a failover? (Default:
|
|
|
|
false)
|
|
|
|
|
2015-05-21 11:51:48 -04:00
|
|
|
--force
|
|
|
|
Overwrite configuration at destination directory
|
|
|
|
|
2017-04-24 03:49:32 -04:00
|
|
|
--global-max-size <globalMaxSize>
|
|
|
|
Maximum amount of memory which message data may consume (Default:
|
|
|
|
Undefined, half of the system's memory)
|
|
|
|
|
2015-05-21 11:51:48 -04:00
|
|
|
--home <home>
|
|
|
|
Directory where ActiveMQ Artemis is installed
|
|
|
|
|
|
|
|
--host <host>
|
|
|
|
The host name of the broker (Default: 0.0.0.0 or input if clustered)
|
|
|
|
|
2017-04-24 03:49:32 -04:00
|
|
|
--http-host <httpHost>
|
|
|
|
The host name to use for embedded web server (Default: localhost)
|
|
|
|
|
2017-02-08 16:23:52 -05:00
|
|
|
--http-port <httpPort>
|
|
|
|
The port number to use for embedded web server (Default: 8161)
|
|
|
|
|
2015-05-21 11:51:48 -04:00
|
|
|
--java-options <javaOptions>
|
|
|
|
Extra java options to be passed to the profile
|
|
|
|
|
2017-02-08 16:23:52 -05:00
|
|
|
--mapped
|
|
|
|
Sets the journal as mapped.
|
|
|
|
|
|
|
|
--max-hops <maxHops>
|
|
|
|
Number of hops on the cluster configuration
|
|
|
|
|
|
|
|
--message-load-balancing <messageLoadBalancing>
|
|
|
|
Load balancing policy on cluster. [ON_DEMAND (default) | STRICT |
|
|
|
|
OFF]
|
|
|
|
|
|
|
|
--name <name>
|
|
|
|
The name of the broker (Default: same as host)
|
|
|
|
|
|
|
|
--nio
|
2017-04-24 03:49:32 -04:00
|
|
|
Sets the journal as nio.
|
2017-02-08 16:23:52 -05:00
|
|
|
|
|
|
|
--no-amqp-acceptor
|
|
|
|
Disable the AMQP specific acceptor.
|
|
|
|
|
|
|
|
--no-autocreate
|
|
|
|
Disable Auto create addresses.
|
|
|
|
|
|
|
|
--no-autotune
|
|
|
|
Disable auto tuning on the journal.
|
|
|
|
|
|
|
|
--no-fsync
|
|
|
|
Disable usage of fdatasync (channel.force(false) from java nio) on
|
|
|
|
the journal
|
|
|
|
|
|
|
|
--no-hornetq-acceptor
|
|
|
|
Disable the HornetQ specific acceptor.
|
|
|
|
|
|
|
|
--no-mqtt-acceptor
|
|
|
|
Disable the MQTT specific acceptor.
|
|
|
|
|
|
|
|
--no-stomp-acceptor
|
|
|
|
Disable the STOMP specific acceptor.
|
|
|
|
|
|
|
|
--no-web
|
2017-04-24 03:49:32 -04:00
|
|
|
Remove the web-server definition from bootstrap.xml
|
|
|
|
|
|
|
|
--paging
|
|
|
|
Page messages to disk when address becomes full, opposite of
|
|
|
|
--blocking (Default: true)
|
2017-02-08 16:23:52 -05:00
|
|
|
|
2015-05-21 11:51:48 -04:00
|
|
|
--password <password>
|
|
|
|
The user's password (Default: input)
|
|
|
|
|
2017-02-08 16:23:52 -05:00
|
|
|
--ping <ping>
|
|
|
|
A comma separated string to be passed on to the broker config as
|
|
|
|
network-check-list. The broker will shutdown when all these
|
|
|
|
addresses are unreachable.
|
|
|
|
|
2015-05-21 11:51:48 -04:00
|
|
|
--port-offset <portOffset>
|
2017-02-08 16:23:52 -05:00
|
|
|
Off sets the ports of every acceptor
|
|
|
|
|
|
|
|
--queues <queues>
|
2017-04-24 03:49:32 -04:00
|
|
|
Comma separated list of queues.
|
2015-05-21 11:51:48 -04:00
|
|
|
|
|
|
|
--replicated
|
|
|
|
Enable broker replication
|
|
|
|
|
2017-02-08 16:23:52 -05:00
|
|
|
--require-login
|
|
|
|
This will configure security to require user / password, opposite of
|
|
|
|
--allow-anonymous
|
|
|
|
|
2015-05-21 11:51:48 -04:00
|
|
|
--role <role>
|
2017-04-24 03:49:32 -04:00
|
|
|
The name for the role created (Default: amq)
|
2015-05-21 11:51:48 -04:00
|
|
|
|
|
|
|
--shared-store
|
|
|
|
Enable broker shared store
|
|
|
|
|
2015-08-05 15:33:20 -04:00
|
|
|
--silent
|
2015-05-21 11:51:48 -04:00
|
|
|
It will disable all the inputs, and it would make a best guess for
|
|
|
|
any required input
|
|
|
|
|
2017-02-08 16:23:52 -05:00
|
|
|
--slave
|
|
|
|
Valid for shared store or replication: this is a slave server?
|
|
|
|
|
|
|
|
--ssl-key <sslKey>
|
|
|
|
The key store path for embedded web server
|
|
|
|
|
|
|
|
--ssl-key-password <sslKeyPassword>
|
|
|
|
The key store password
|
|
|
|
|
|
|
|
--ssl-trust <sslTrust>
|
|
|
|
The trust store path in case of client authentication
|
|
|
|
|
|
|
|
--ssl-trust-password <sslTrustPassword>
|
|
|
|
The trust store password
|
|
|
|
|
|
|
|
--use-client-auth
|
|
|
|
If the embedded server requires client authentication
|
|
|
|
|
2015-05-21 11:51:48 -04:00
|
|
|
--user <user>
|
|
|
|
The username (Default: input)
|
|
|
|
|
2017-02-08 16:23:52 -05:00
|
|
|
--verbose
|
|
|
|
Adds more information on the execution
|
|
|
|
|
2015-05-21 11:51:48 -04:00
|
|
|
--
|
|
|
|
This option can be used to separate command-line options from the
|
|
|
|
list of argument, (useful when arguments might be mistaken for
|
|
|
|
command-line options
|
|
|
|
|
|
|
|
<directory>
|
2017-02-08 16:23:52 -05:00
|
|
|
The instance directory to hold the broker's configuration and data.
|
|
|
|
Path must be writable.
|
2015-05-21 11:51:48 -04:00
|
|
|
```
|
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
Some of these properties may be mandatory in certain configurations and the
|
|
|
|
system may ask you for additional input.
|
2015-05-21 11:51:48 -04:00
|
|
|
|
|
|
|
```
|
2018-03-09 10:07:38 -05:00
|
|
|
./artemis create /usr/server
|
|
|
|
Creating ActiveMQ Artemis instance at: /user/server
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
--user: is a mandatory property!
|
|
|
|
Please provide the default username:
|
|
|
|
admin
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
--password: is mandatory with this configuration:
|
|
|
|
Please provide the default password:
|
2015-05-21 11:51:48 -04:00
|
|
|
|
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
--allow-anonymous | --require-login: is a mandatory property!
|
|
|
|
Allow anonymous access?, valid values are Y,N,True,False
|
|
|
|
y
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
Auto tuning journal ...
|
|
|
|
done! Your system can make 0.34 writes per millisecond, your journal-buffer-timeout will be 2956000
|
2017-04-24 03:49:32 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
You can now start the broker by executing:
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
"/user/server/bin/artemis" run
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
Or you can run the broker in the background using:
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
"/user/server/bin/artemis-service" start
|
2015-05-21 11:51:48 -04:00
|
|
|
```
|
|
|
|
|
|
|
|
|
2018-03-08 15:46:38 -05:00
|
|
|
## Starting and Stopping a Broker Instance
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2015-04-15 18:45:37 -04:00
|
|
|
Assuming you created the broker instance under `/var/lib/mybroker` all you need
|
|
|
|
to do start running the broker instance is execute:
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
```sh
|
|
|
|
/var/lib/mybroker/bin/artemis run
|
|
|
|
```
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2015-05-21 11:51:48 -04:00
|
|
|
Now that the broker is running, you can optionally run some of the included
|
2020-11-13 06:07:15 -05:00
|
|
|
examples to verify the broker is running properly.
|
2015-03-04 07:28:20 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
To stop the Apache ActiveMQ Artemis instance you will use the same `artemis`
|
|
|
|
script, but with the `stop` argument. Example:
|
2015-03-04 07:28:20 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
```sh
|
|
|
|
/var/lib/mybroker/bin/artemis stop
|
|
|
|
```
|
2015-03-04 07:28:20 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
Please note that Apache ActiveMQ Artemis requires a Java 7 or later runtime to
|
|
|
|
run.
|
2015-03-04 07:28:20 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
By default the `etc/bootstrap.xml` configuration is used. The configuration can
|
|
|
|
be changed e.g. by running `./artemis run -- xml:path/to/bootstrap.xml` or
|
|
|
|
another config of your choosing.
|
2015-04-15 18:45:37 -04:00
|
|
|
|
|
|
|
Environment variables are used to provide ease of changing ports, hosts and
|
2015-09-29 16:49:01 -04:00
|
|
|
data directories used and can be found in `etc/artemis.profile` on linux and
|
|
|
|
`etc\artemis.profile.cmd` on Windows.
|
2015-03-04 07:28:20 -05:00
|
|
|
|
2014-12-11 07:17:29 -05:00
|
|
|
## Server JVM settings
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
The run scripts set some JVM settings for tuning the garbage collection policy
|
|
|
|
and heap size. We recommend using a parallel garbage collection algorithm to
|
|
|
|
smooth out latency and minimise large GC pauses.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
By default Apache ActiveMQ Artemis runs in a maximum of 1GiB of RAM. To
|
|
|
|
increase the memory settings change the `-Xms` and `-Xmx` memory settings as
|
|
|
|
you would for any Java program.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
If you wish to add any more JVM arguments or tune the existing ones, the run
|
|
|
|
scripts are the place to do it.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2014-12-11 07:17:29 -05:00
|
|
|
## Library Path
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
If you're using the [Asynchronous IO Journal](libaio.md) on Linux, you need to
|
|
|
|
specify `java.library.path` as a property on your Java options. This is done
|
|
|
|
automatically in the scripts.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
If you don't specify `java.library.path` at your Java options then the JVM will
|
|
|
|
use the environment variable `LD_LIBRARY_PATH`.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
You will need to make sure libaio is installed on Linux. For more information
|
|
|
|
refer to the [libaio chapter](libaio.html#runtime-dependencies).
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2014-12-11 07:17:29 -05:00
|
|
|
## System properties
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
Apache ActiveMQ Artemis can take a system property on the command line for
|
|
|
|
configuring logging.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2015-01-21 13:46:15 -05:00
|
|
|
For more information on configuring logging, please see the section on
|
|
|
|
[Logging](logging.md).
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2014-12-11 07:17:29 -05:00
|
|
|
## Configuration files
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
The configuration file used to bootstrap the server (e.g. `bootstrap.xml` by
|
|
|
|
default) references the specific broker configuration files.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
- `broker.xml`. This is the main ActiveMQ configuration file. All the
|
|
|
|
parameters in this file are described [here](configuration-index.md)
|
2014-12-04 10:25:29 -05:00
|
|
|
|
|
|
|
It is also possible to use system property substitution in all the
|
2018-03-09 10:07:38 -05:00
|
|
|
configuration files. by replacing a value with the name of a system property.
|
|
|
|
Here is an example of this with a connector configuration:
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
```xml
|
|
|
|
<connector name="netty">tcp://${activemq.remoting.netty.host:localhost}:${activemq.remoting.netty.port:61616}</connector>
|
|
|
|
```
|
2014-12-04 10:25:29 -05:00
|
|
|
|
|
|
|
Here you can see we have replaced 2 values with system properties
|
2018-03-09 10:07:38 -05:00
|
|
|
`activemq.remoting.netty.host` and `activemq.remoting.netty.port`. These values
|
|
|
|
will be replaced by the value found in the system property if there is one, if
|
|
|
|
not they default back to localhost or 61616 respectively. It is also possible
|
|
|
|
to not supply a default. i.e. `${activemq.remoting.netty.host}`, however the
|
|
|
|
system property *must* be supplied in that case.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-08 15:46:38 -05:00
|
|
|
### Bootstrap configuration file
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
The stand-alone server is basically a set of POJOs which are instantiated by
|
|
|
|
Airline commands.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
|
|
|
The bootstrap file is very simple. Let's take a look at an example:
|
|
|
|
|
2018-03-08 15:46:38 -05:00
|
|
|
```xml
|
|
|
|
<broker xmlns="http://activemq.org/schema">
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-08 15:46:38 -05:00
|
|
|
<jaas-security domain="activemq"/>
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-08 15:46:38 -05:00
|
|
|
<server configuration="file:/path/to/broker.xml"/>
|
|
|
|
|
|
|
|
<web bind="http://localhost:8161" path="web">
|
|
|
|
<app url="activemq-branding" war="activemq-branding.war"/>
|
|
|
|
<app url="artemis-plugin" war="artemis-plugin.war"/>
|
|
|
|
<app url="console" war="console.war"/>
|
|
|
|
</web>
|
|
|
|
</broker>
|
|
|
|
```
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
- `server` - Instantiates a core server using the configuration file from the
|
|
|
|
`configuration` attribute. This is the main broker POJO necessary to do all
|
|
|
|
the real messaging work.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2019-12-10 16:15:21 -05:00
|
|
|
- `jaas-security` - Configures JAAS-based security for the server. The
|
|
|
|
`domain` attribute refers to the relevant login module entry in
|
|
|
|
`login.config`. If different behavior is needed then a custom security
|
|
|
|
manager can be configured by replacing `jaas-security` with
|
|
|
|
`security-manager`. See the "Custom Security Manager" section in the
|
|
|
|
[security chapter](security.md) for more details.
|
2018-03-08 15:46:38 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
- `web` - Configures an embedded Jetty instance to serve web applications like
|
|
|
|
the admin console.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-08 15:46:38 -05:00
|
|
|
### Broker configuration file
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2015-04-27 17:32:30 -04:00
|
|
|
The configuration for the Apache ActiveMQ Artemis core server is contained in
|
2018-03-09 10:07:38 -05:00
|
|
|
`broker.xml`. This is what the FileConfiguration bean uses to configure the
|
|
|
|
messaging server.
|
2014-12-04 10:25:29 -05:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
There are many attributes which you can configure Apache ActiveMQ Artemis. In
|
|
|
|
most cases the defaults will do fine, in fact every attribute can be defaulted
|
|
|
|
which means a file with a single empty `configuration` element is a valid
|
|
|
|
configuration file. The different configuration will be explained throughout
|
|
|
|
the manual or you can refer to the configuration reference
|
|
|
|
[here](configuration-index.md).
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-08 15:46:38 -05:00
|
|
|
## Windows Server
|
2015-05-21 11:51:48 -04:00
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
On windows you will have the option to run ActiveMQ Artemis as a service. Just
|
|
|
|
use the following command to install it:
|
2015-05-21 11:51:48 -04:00
|
|
|
|
|
|
|
```
|
|
|
|
$ ./artemis-service.exe install
|
|
|
|
```
|
|
|
|
|
2018-03-09 10:07:38 -05:00
|
|
|
The create process should give you a hint of the available commands available
|
|
|
|
for the artemis-service.exe
|
2018-01-22 15:47:53 -05:00
|
|
|
|
2019-12-18 04:22:28 -05:00
|
|
|
## Adding Bootstrap Dependencies
|
|
|
|
|
|
|
|
Bootstrap dependencies like logging handlers must be accessible by the log
|
|
|
|
manager at boot time. Package the dependency in a jar and put it on the boot
|
|
|
|
classpath before of log manager jar. This can be done appending the jar at the
|
|
|
|
variable `JAVA_ARGS`, defined in `artemis.profile`, with the option `-Xbootclasspath/a`.
|
|
|
|
|
2018-01-22 15:47:53 -05:00
|
|
|
## Adding Runtime Dependencies
|
|
|
|
|
|
|
|
Runtime dependencies like diverts, transformers, broker plugins, JDBC drivers,
|
2018-03-09 10:07:38 -05:00
|
|
|
password decoders, etc. must be accessible by the broker at runtime. Package
|
2018-01-22 15:47:53 -05:00
|
|
|
the dependency in a jar, and put it on the broker's classpath. This can be done
|
2018-03-09 10:07:38 -05:00
|
|
|
by placing the jar file in the `lib` directory of the broker distribution
|
|
|
|
itself or in the `lib` directory of the broker instance. A broker instance does
|
|
|
|
not have a `lib` directory by default so it may need to be created. It should
|
|
|
|
be on the "top" level with the `bin`, `data`, `log`, etc. directories.
|