blob: 5975503655c5964d861a1eaca2e5c0d67ef6051f [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="" >
<head>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Using the Server ยท ActiveMQ Artemis Documentation</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="">
<meta name="generator" content="GitBook 3.2.3">
<link rel="stylesheet" href="gitbook/style.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-highlight/website.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-search/search.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
<meta name="HandheldFriendly" content="true"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
<link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
<link rel="next" href="upgrading.html" />
<link rel="prev" href="architecture.html" />
</head>
<body>
<div class="book">
<div class="book-summary">
<div id="book-search-input" role="search">
<input type="text" placeholder="Type to search" />
</div>
<nav role="navigation">
<ul class="summary">
<li class="chapter " data-level="1.1" data-path="./">
<a href="./">
Introduction
</a>
</li>
<li class="chapter " data-level="1.2" data-path="notice.html">
<a href="notice.html">
Legal Notice
</a>
</li>
<li class="chapter " data-level="1.3" data-path="preface.html">
<a href="preface.html">
Preface
</a>
</li>
<li class="chapter " data-level="1.4" data-path="project-info.html">
<a href="project-info.html">
Project Info
</a>
</li>
<li class="chapter " data-level="1.5" data-path="versions.html">
<a href="versions.html">
Versions
</a>
</li>
<li class="chapter " data-level="1.6" data-path="messaging-concepts.html">
<a href="messaging-concepts.html">
Messaging Concepts
</a>
</li>
<li class="chapter " data-level="1.7" data-path="architecture.html">
<a href="architecture.html">
Architecture
</a>
</li>
<li class="chapter active" data-level="1.8" data-path="using-server.html">
<a href="using-server.html">
Using the Server
</a>
</li>
<li class="chapter " data-level="1.9" data-path="upgrading.html">
<a href="upgrading.html">
Upgrading
</a>
</li>
<li class="chapter " data-level="1.10" >
<span>
Address
</span>
<ul class="articles">
<li class="chapter " data-level="1.10.1" data-path="address-model.html">
<a href="address-model.html">
Model
</a>
</li>
<li class="chapter " data-level="1.10.2" data-path="address-settings.html">
<a href="address-settings.html">
Settings
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.11" data-path="protocols-interoperability.html">
<a href="protocols-interoperability.html">
Protocols and Interoperability
</a>
</li>
<li class="chapter " data-level="1.12" data-path="amqp.html">
<a href="amqp.html">
AMQP
</a>
<ul class="articles">
<li class="chapter " data-level="1.12.1" data-path="amqp-broker-connections.html">
<a href="amqp-broker-connections.html">
Broker Connections
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.13" data-path="mqtt.html">
<a href="mqtt.html">
MQTT
</a>
</li>
<li class="chapter " data-level="1.14" data-path="stomp.html">
<a href="stomp.html">
STOMP
</a>
</li>
<li class="chapter " data-level="1.15" data-path="openwire.html">
<a href="openwire.html">
OpenWire
</a>
</li>
<li class="chapter " data-level="1.16" data-path="core.html">
<a href="core.html">
Core
</a>
</li>
<li class="chapter " data-level="1.17" data-path="jms-core-mapping.html">
<a href="jms-core-mapping.html">
Mapping JMS Concepts to the Core API
</a>
</li>
<li class="chapter " data-level="1.18" data-path="using-jms.html">
<a href="using-jms.html">
Using JMS
</a>
</li>
<li class="chapter " data-level="1.19" data-path="client-classpath.html">
<a href="client-classpath.html">
The Client Classpath
</a>
<ul class="articles">
<li class="chapter " data-level="1.19.1" data-path="client-classpath-jms.html">
<a href="client-classpath-jms.html">
JMS
</a>
</li>
<li class="chapter " data-level="1.19.2" data-path="client-classpath-jakarta.html">
<a href="client-classpath-jakarta.html">
Jakarta
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.20" data-path="examples.html">
<a href="examples.html">
Examples
</a>
</li>
<li class="chapter " data-level="1.21" data-path="wildcard-routing.html">
<a href="wildcard-routing.html">
Routing Messages With Wild Cards
</a>
</li>
<li class="chapter " data-level="1.22" data-path="wildcard-syntax.html">
<a href="wildcard-syntax.html">
Wildcard Syntax
</a>
</li>
<li class="chapter " data-level="1.23" data-path="filter-expressions.html">
<a href="filter-expressions.html">
Filter Expressions
</a>
</li>
<li class="chapter " data-level="1.24" data-path="persistence.html">
<a href="persistence.html">
Persistence
</a>
</li>
<li class="chapter " data-level="1.25" data-path="configuring-transports.html">
<a href="configuring-transports.html">
Configuring Transports
</a>
</li>
<li class="chapter " data-level="1.26" data-path="config-reload.html">
<a href="config-reload.html">
Configuration Reload
</a>
</li>
<li class="chapter " data-level="1.27" data-path="connection-ttl.html">
<a href="connection-ttl.html">
Detecting Dead Connections
</a>
</li>
<li class="chapter " data-level="1.28" data-path="slow-consumers.html">
<a href="slow-consumers.html">
Detecting Slow Consumers
</a>
</li>
<li class="chapter " data-level="1.29" data-path="network-isolation.html">
<a href="network-isolation.html">
Avoiding Network Isolation
</a>
</li>
<li class="chapter " data-level="1.30" data-path="critical-analysis.html">
<a href="critical-analysis.html">
Detecting Broker Issues (Critical Analysis)
</a>
</li>
<li class="chapter " data-level="1.31" data-path="transaction-config.html">
<a href="transaction-config.html">
Resource Manager Configuration
</a>
</li>
<li class="chapter " data-level="1.32" data-path="flow-control.html">
<a href="flow-control.html">
Flow Control
</a>
</li>
<li class="chapter " data-level="1.33" data-path="send-guarantees.html">
<a href="send-guarantees.html">
Guarantees of sends and commits
</a>
</li>
<li class="chapter " data-level="1.34" data-path="undelivered-messages.html">
<a href="undelivered-messages.html">
Message Redelivery and Undelivered Messages
</a>
</li>
<li class="chapter " data-level="1.35" data-path="message-expiry.html">
<a href="message-expiry.html">
Message Expiry
</a>
</li>
<li class="chapter " data-level="1.36" data-path="large-messages.html">
<a href="large-messages.html">
Large Messages
</a>
</li>
<li class="chapter " data-level="1.37" data-path="paging.html">
<a href="paging.html">
Paging
</a>
</li>
<li class="chapter " data-level="1.38" data-path="scheduled-messages.html">
<a href="scheduled-messages.html">
Scheduled Messages
</a>
</li>
<li class="chapter " data-level="1.39" data-path="last-value-queues.html">
<a href="last-value-queues.html">
Last-Value Queues
</a>
</li>
<li class="chapter " data-level="1.40" data-path="non-destructive-queues.html">
<a href="non-destructive-queues.html">
Non-Destructive Queues
</a>
</li>
<li class="chapter " data-level="1.41" data-path="ring-queues.html">
<a href="ring-queues.html">
Ring Queues
</a>
</li>
<li class="chapter " data-level="1.42" data-path="retroactive-addresses.html">
<a href="retroactive-addresses.html">
Retroactive Addresses
</a>
</li>
<li class="chapter " data-level="1.43" data-path="exclusive-queues.html">
<a href="exclusive-queues.html">
Exclusive Queues
</a>
</li>
<li class="chapter " data-level="1.44" data-path="message-grouping.html">
<a href="message-grouping.html">
Message Grouping
</a>
</li>
<li class="chapter " data-level="1.45" data-path="consumer-priority.html">
<a href="consumer-priority.html">
Consumer Priority
</a>
</li>
<li class="chapter " data-level="1.46" data-path="pre-acknowledge.html">
<a href="pre-acknowledge.html">
Extra Acknowledge Modes
</a>
</li>
<li class="chapter " data-level="1.47" data-path="management.html">
<a href="management.html">
Management
</a>
</li>
<li class="chapter " data-level="1.48" data-path="management-console.html">
<a href="management-console.html">
Management Console
</a>
</li>
<li class="chapter " data-level="1.49" data-path="metrics.html">
<a href="metrics.html">
Metrics
</a>
</li>
<li class="chapter " data-level="1.50" data-path="security.html">
<a href="security.html">
Security
</a>
</li>
<li class="chapter " data-level="1.51" data-path="masking-passwords.html">
<a href="masking-passwords.html">
Masking Passwords
</a>
</li>
<li class="chapter " data-level="1.52" data-path="broker-plugins.html">
<a href="broker-plugins.html">
Broker Plugins
</a>
</li>
<li class="chapter " data-level="1.53" data-path="resource-limits.html">
<a href="resource-limits.html">
Resource Limits
</a>
</li>
<li class="chapter " data-level="1.54" data-path="jms-bridge.html">
<a href="jms-bridge.html">
The JMS Bridge
</a>
</li>
<li class="chapter " data-level="1.55" data-path="client-reconnection.html">
<a href="client-reconnection.html">
Client Reconnection and Session Reattachment
</a>
</li>
<li class="chapter " data-level="1.56" data-path="diverts.html">
<a href="diverts.html">
Diverting and Splitting Message Flows
</a>
</li>
<li class="chapter " data-level="1.57" data-path="core-bridges.html">
<a href="core-bridges.html">
Core Bridges
</a>
</li>
<li class="chapter " data-level="1.58" data-path="transformers.html">
<a href="transformers.html">
Transformers
</a>
</li>
<li class="chapter " data-level="1.59" data-path="duplicate-detection.html">
<a href="duplicate-detection.html">
Duplicate Message Detection
</a>
</li>
<li class="chapter " data-level="1.60" data-path="clusters.html">
<a href="clusters.html">
Clusters
</a>
</li>
<li class="chapter " data-level="1.61" data-path="federation.html">
<a href="federation.html">
Federation
</a>
<ul class="articles">
<li class="chapter " data-level="1.61.1" data-path="federation-address.html">
<a href="federation-address.html">
Address Federation
</a>
</li>
<li class="chapter " data-level="1.61.2" data-path="federation-queue.html">
<a href="federation-queue.html">
Queue Federation
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.62" data-path="ha.html">
<a href="ha.html">
High Availability and Failover
</a>
</li>
<li class="chapter " data-level="1.63" data-path="connection-routers.html">
<a href="connection-routers.html">
Connection Routers
</a>
</li>
<li class="chapter " data-level="1.64" data-path="graceful-shutdown.html">
<a href="graceful-shutdown.html">
Graceful Server Shutdown
</a>
</li>
<li class="chapter " data-level="1.65" data-path="libaio.html">
<a href="libaio.html">
Libaio Native Libraries
</a>
</li>
<li class="chapter " data-level="1.66" data-path="thread-pooling.html">
<a href="thread-pooling.html">
Thread management
</a>
</li>
<li class="chapter " data-level="1.67" data-path="web-server.html">
<a href="web-server.html">
Embedded Web Server
</a>
</li>
<li class="chapter " data-level="1.68" data-path="logging.html">
<a href="logging.html">
Logging
</a>
</li>
<li class="chapter " data-level="1.69" data-path="rest.html">
<a href="rest.html">
REST Interface
</a>
</li>
<li class="chapter " data-level="1.70" data-path="embedding-activemq.html">
<a href="embedding-activemq.html">
Embedding the Broker
</a>
</li>
<li class="chapter " data-level="1.71" data-path="karaf.html">
<a href="karaf.html">
Apache Karaf
</a>
</li>
<li class="chapter " data-level="1.72" data-path="tomcat.html">
<a href="tomcat.html">
Apache Tomcat
</a>
</li>
<li class="chapter " data-level="1.73" data-path="spring-integration.html">
<a href="spring-integration.html">
Spring Integration
</a>
</li>
<li class="chapter " data-level="1.74" data-path="cdi-integration.html">
<a href="cdi-integration.html">
CDI Integration
</a>
</li>
<li class="chapter " data-level="1.75" data-path="intercepting-operations.html">
<a href="intercepting-operations.html">
Intercepting Operations
</a>
</li>
<li class="chapter " data-level="1.76" data-path="data-tools.html">
<a href="data-tools.html">
Data Tools
</a>
</li>
<li class="chapter " data-level="1.77" data-path="activation-tools.html">
<a href="activation-tools.html">
Activation Tools
</a>
</li>
<li class="chapter " data-level="1.78" data-path="maven-plugin.html">
<a href="maven-plugin.html">
Maven Plugin
</a>
</li>
<li class="chapter " data-level="1.79" data-path="unit-testing.html">
<a href="unit-testing.html">
Unit Testing
</a>
</li>
<li class="chapter " data-level="1.80" data-path="perf-tuning.html">
<a href="perf-tuning.html">
Troubleshooting and Performance Tuning
</a>
</li>
<li class="chapter " data-level="1.81" data-path="perf-tools.html">
<a href="perf-tools.html">
Performance Tools
</a>
</li>
<li class="chapter " data-level="1.82" data-path="configuration-index.html">
<a href="configuration-index.html">
Configuration Reference
</a>
</li>
<li class="chapter " data-level="1.83" data-path="restart-sequence.html">
<a href="restart-sequence.html">
Restart Sequence
</a>
</li>
<li class="divider"></li>
<li>
<a href="https://www.gitbook.com" target="blank" class="gitbook-link">
Published with GitBook
</a>
</li>
</ul>
</nav>
</div>
<div class="book-body">
<div class="body-inner">
<div class="book-header" role="navigation">
<!-- Title -->
<h1>
<i class="fa fa-circle-o-notch fa-spin"></i>
<a href="." >Using the Server</a>
</h1>
</div>
<div class="page-wrapper" tabindex="-1" role="main">
<div class="page-inner">
<div id="book-search-results">
<div class="search-noresults">
<section class="normal markdown-section">
<h1 id="using-the-server">Using the Server</h1>
<p>This chapter will familiarise you with how to use the Apache ActiveMQ Artemis
server.</p>
<p>We&apos;ll show where it is, how to start and stop it, and we&apos;ll describe the
directory layout and what all the files are and what they do.</p>
<p>This document will refer to the full path of the directory where the ActiveMQ
distribution has been extracted to as <code>${ARTEMIS_HOME}</code>.</p>
<h2 id="installation">Installation</h2>
<p>The following highlights some important folders on the distribution:</p>
<pre><code>|___ bin
|
|___ examples
| |___ common
| |___ features
| |___ perf
| |___ protocols
|
|___ lib
| |___ client
|
|___ schema
|
|___ web
|___ api
|___ hacking-guide
|___ migration-guide
|___ user-manual
</code></pre><ul>
<li><p><code>bin</code> - binaries and scripts needed to run ActiveMQ Artemis.</p>
</li>
<li><p><code>examples</code> - All manner of examples. Please refer to the <a href="examples.html">examples</a>
chapter for details on how to run them.</p>
</li>
<li><p><code>lib</code> - jars and libraries needed to run ActiveMQ Artemis</p>
</li>
<li><p><code>schema</code> - XML Schemas used to validate ActiveMQ Artemis configuration files</p>
</li>
<li><p><code>web</code> - The folder where the web context is loaded when the broker runs.</p>
</li>
<li><p><code>api</code> - The api documentation is placed under the web folder.</p>
</li>
<li><p><code>user-manual</code> - The user manual is placed under the web folder.</p>
</li>
</ul>
<h2 id="creating-a-broker-instance">Creating a Broker Instance</h2>
<p>A broker <em>instance</em> is the directory containing all the configuration and runtime
data, such as logs and message journal, associated with a broker process. It is
recommended that you do <em>not</em> create the instance directory under
<code>${ARTEMIS_HOME}</code>. This separation is encouraged so that you can more easily
upgrade when the next version of ActiveMQ Artemis is released.</p>
<p>On Unix systems, it is a common convention to store this kind of runtime data
under the <code>/var/lib</code> directory. For example, to create an instance at
<code>/var/lib/mybroker</code>, run the following commands in your command line shell:</p>
<pre><code class="lang-sh"><span class="hljs-built_in">cd</span> /var/lib
<span class="hljs-variable">${ARTEMIS_HOME}</span>/bin/artemis create mybroker
</code></pre>
<p>A broker instance directory will contain the following sub directories:</p>
<ul>
<li><code>bin</code>: holds execution scripts associated with this instance.</li>
<li><code>data</code>: holds the data files used for storing persistent messages</li>
<li><code>etc</code>: hold the instance configuration files</li>
<li><code>lib</code>: holds any custom runtime Java dependencies like transformers,
plugins, interceptors, etc.</li>
<li><code>log</code>: holds rotating log files</li>
<li><code>tmp</code>: holds temporary files that are safe to delete between broker runs</li>
</ul>
<p>At this point you may want to adjust the default configuration located in the
<code>etc</code> directory.</p>
<h3 id="options">Options</h3>
<p>There are several options you can use when creating an instance. For a full list
of options use the <code>help</code> command:</p>
<pre><code>$./artemis help create
NAME
artemis create - creates a new broker instance
SYNOPSIS
artemis create [--addresses &lt;addresses&gt;] [--aio] [--allow-anonymous]
[--autocreate] [--blocking] [--cluster-password &lt;clusterPassword&gt;]
[--cluster-user &lt;clusterUser&gt;] [--clustered] [--data &lt;data&gt;]
[--default-port &lt;defaultPort&gt;] [--disable-persistence]
[--encoding &lt;encoding&gt;] [--etc &lt;etc&gt;] [--failover-on-shutdown] [--force]
[--global-max-size &lt;globalMaxSize&gt;] [--home &lt;home&gt;] [--host &lt;host&gt;]
[--http-host &lt;httpHost&gt;] [--http-port &lt;httpPort&gt;]
[--java-options &lt;javaOptions&gt;] [--jdbc]
[--jdbc-bindings-table-name &lt;jdbcBindings&gt;]
[--jdbc-connection-url &lt;jdbcURL&gt;]
[--jdbc-driver-class-name &lt;jdbcClassName&gt;]
[--jdbc-large-message-table-name &lt;jdbcLargeMessages&gt;]
[--jdbc-lock-expiration &lt;jdbcLockExpiration&gt;]
[--jdbc-lock-renew-period &lt;jdbcLockRenewPeriod&gt;]
[--jdbc-message-table-name &lt;jdbcMessages&gt;]
[--jdbc-network-timeout &lt;jdbcNetworkTimeout&gt;]
[--jdbc-node-manager-table-name &lt;jdbcNodeManager&gt;]
[--jdbc-page-store-table-name &lt;jdbcPageStore&gt;]
[--journal-device-block-size &lt;journalDeviceBlockSize&gt;] [--mapped]
[--max-hops &lt;maxHops&gt;] [--message-load-balancing &lt;messageLoadBalancing&gt;]
[--name &lt;name&gt;] [--nio] [--no-amqp-acceptor] [--no-autocreate]
[--no-autotune] [--no-fsync] [--no-hornetq-acceptor]
[--no-mqtt-acceptor] [--no-stomp-acceptor] [--no-web] [--paging]
[--password &lt;password&gt;] [--ping &lt;ping&gt;] [--port-offset &lt;portOffset&gt;]
[--queues &lt;queues&gt;] [--relax-jolokia] [--replicated] [--require-login]
[--role &lt;role&gt;] [--security-manager &lt;securityManager&gt;] [--shared-store]
[--silent] [--slave] [--ssl-key &lt;sslKey&gt;]
[--ssl-key-password &lt;sslKeyPassword&gt;] [--ssl-trust &lt;sslTrust&gt;]
[--ssl-trust-password &lt;sslTrustPassword&gt;] [--staticCluster &lt;staticNode&gt;]
[--use-client-auth] [--user &lt;user&gt;] [--verbose] [--] &lt;directory&gt;
OPTIONS
--addresses &lt;addresses&gt;
Comma separated list of addresses
--aio
Sets the journal as asyncio.
--allow-anonymous
Enables anonymous configuration on security, opposite of
--require-login (Default: input)
--autocreate
Auto create addresses. (default: true)
--blocking
Block producers when address becomes full, opposite of --paging
(Default: false)
--cluster-password &lt;clusterPassword&gt;
The cluster password to use for clustering. (Default: input)
--cluster-user &lt;clusterUser&gt;
The cluster user to use for clustering. (Default: input)
--clustered
Enable clustering
--data &lt;data&gt;
Directory where ActiveMQ data are stored. Paths can be absolute or
relative to artemis.instance directory (&apos;data&apos; by default)
--default-port &lt;defaultPort&gt;
The port number to use for the main &apos;artemis&apos; acceptor (Default:
61616)
--disable-persistence
Disable message persistence to the journal
--encoding &lt;encoding&gt;
The encoding that text files should use
--etc &lt;etc&gt;
Directory where ActiveMQ configuration is located. Paths can be
absolute or relative to artemis.instance directory (&apos;etc&apos; by
default)
--failover-on-shutdown
Valid for shared store: will shutdown trigger a failover? (Default:
false)
--force
Overwrite configuration at destination directory
--global-max-size &lt;globalMaxSize&gt;
Maximum amount of memory which message data may consume (Default:
Undefined, half of the system&apos;s memory)
--home &lt;home&gt;
Directory where ActiveMQ Artemis is installed
--host &lt;host&gt;
The host name of the broker (Default: 0.0.0.0 or input if clustered)
--http-host &lt;httpHost&gt;
The host name to use for embedded web server (Default: localhost)
--http-port &lt;httpPort&gt;
The port number to use for embedded web server (Default: 8161)
--java-options &lt;javaOptions&gt;
Extra java options to be passed to the profile
--jdbc
It will activate jdbc
--jdbc-bindings-table-name &lt;jdbcBindings&gt;
Name of the jdbc bindings table
--jdbc-connection-url &lt;jdbcURL&gt;
The connection used for the database
--jdbc-driver-class-name &lt;jdbcClassName&gt;
JDBC driver classname
--jdbc-large-message-table-name &lt;jdbcLargeMessages&gt;
Name of the large messages table
--jdbc-lock-expiration &lt;jdbcLockExpiration&gt;
Lock expiration
--jdbc-lock-renew-period &lt;jdbcLockRenewPeriod&gt;
Lock Renew Period
--jdbc-message-table-name &lt;jdbcMessages&gt;
Name of the jdbc messages table
--jdbc-network-timeout &lt;jdbcNetworkTimeout&gt;
Network timeout
--jdbc-node-manager-table-name &lt;jdbcNodeManager&gt;
Name of the jdbc node manager table
--jdbc-page-store-table-name &lt;jdbcPageStore&gt;
Name of the page store messages table
--journal-device-block-size &lt;journalDeviceBlockSize&gt;
The block size by the device, default at 4096.
--mapped
Sets the journal as mapped.
--max-hops &lt;maxHops&gt;
Number of hops on the cluster configuration
--message-load-balancing &lt;messageLoadBalancing&gt;
Load balancing policy on cluster. [ON_DEMAND (default) | STRICT |
OFF]
--name &lt;name&gt;
The name of the broker (Default: same as host)
--nio
Sets the journal as nio.
--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
Remove the web-server definition from bootstrap.xml
--paging
Page messages to disk when address becomes full, opposite of
--blocking (Default: true)
--password &lt;password&gt;
The user&apos;s password (Default: input)
--ping &lt;ping&gt;
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.
--port-offset &lt;portOffset&gt;
Off sets the ports of every acceptor
--queues &lt;queues&gt;
Comma separated list of queues with the option to specify a routing
type. (ex: --queues myqueue,mytopic:multicast)
--relax-jolokia
disable strict checking on jolokia-access.xml
--replicated
Enable broker replication
--require-login
This will configure security to require user / password, opposite of
--allow-anonymous
--role &lt;role&gt;
The name for the role created (Default: amq)
--security-manager &lt;securityManager&gt;
Which security manager to use - jaas or basic (Default: jaas)
--shared-store
Enable broker shared store
--silent
It will disable all the inputs, and it would make a best guess for
any required input
--slave
Valid for shared store or replication: this is a slave server?
--ssl-key &lt;sslKey&gt;
The key store path for embedded web server
--ssl-key-password &lt;sslKeyPassword&gt;
The key store password
--ssl-trust &lt;sslTrust&gt;
The trust store path in case of client authentication
--ssl-trust-password &lt;sslTrustPassword&gt;
The trust store password
--staticCluster &lt;staticNode&gt;
Cluster node connectors list, separated by comma: Example
&quot;tcp://server:61616,tcp://server2:61616,tcp://server3:61616&quot;
--use-client-auth
If the embedded server requires client authentication
--user &lt;user&gt;
The username (Default: input)
--verbose
Adds more information on the execution
--
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
&lt;directory&gt;
The instance directory to hold the broker&apos;s configuration and data.
Path must be writable.
</code></pre><p>Some of these options may be mandatory in certain configurations and the
system may ask you for additional input, e.g.:</p>
<pre><code class="lang-sh">./artemis create /usr/server
Creating ActiveMQ Artemis instance at: /user/server
--user: is a mandatory property!
Please provide the default username:
admin
--password: is mandatory with this configuration:
Please provide the default password:
--allow-anonymous | --require-login: is a mandatory property!
Allow anonymous access?, valid values are Y,N,True,False
y
Auto tuning journal ...
<span class="hljs-keyword">done</span>! Your system can make 0.34 writes per millisecond, your journal-buffer-timeout will be 2956000
You can now start the broker by executing:
<span class="hljs-string">&quot;/user/server/bin/artemis&quot;</span> run
Or you can run the broker <span class="hljs-keyword">in</span> the background using:
<span class="hljs-string">&quot;/user/server/bin/artemis-service&quot;</span> start
</code></pre>
<h2 id="starting-and-stopping-a-broker-instance">Starting and Stopping a Broker Instance</h2>
<p>Assuming you created the broker instance under <code>/var/lib/mybroker</code> all you need
to do start running the broker instance is execute:</p>
<pre><code class="lang-sh">/var/lib/mybroker/bin/artemis run
</code></pre>
<p>Now that the broker is running, you can optionally run some of the included
examples to verify the broker is running properly.</p>
<p>To stop the Apache ActiveMQ Artemis instance you will use the same <code>artemis</code>
script, but with the <code>stop</code> argument. Example:</p>
<pre><code class="lang-sh">/var/lib/mybroker/bin/artemis stop
</code></pre>
<p>Please note that Apache ActiveMQ Artemis requires a Java 11 or later.</p>
<p>By default the <code>etc/bootstrap.xml</code> configuration is used. The configuration can
be changed e.g. by running <code>./artemis run -- xml:path/to/bootstrap.xml</code> or
another config of your choosing.</p>
<p>Environment variables are used to provide ease of changing ports, hosts and
data directories used and can be found in <code>etc/artemis.profile</code> on linux and
<code>etc\artemis.profile.cmd</code> on Windows.</p>
<h2 id="library-path">Library Path</h2>
<p>If you&apos;re using the <a href="libaio.html">Asynchronous IO Journal</a> on Linux, you need to
specify <code>java.library.path</code> as a property on your Java options. This is done
automatically in the scripts.</p>
<p>If you don&apos;t specify <code>java.library.path</code> at your Java options then the JVM will
use the environment variable <code>LD_LIBRARY_PATH</code>.</p>
<p>You will need to make sure libaio is installed on Linux. For more information
refer to the <a href="libaio.html#runtime-dependencies">libaio chapter</a>.</p>
<h2 id="configuration-files">Configuration files</h2>
<p>These are the files you&apos;re likely to find in the <code>etc</code> directory of a default
broker instance with a short explanation of what they configure. Scroll down
further for additional details as appropriate.</p>
<ul>
<li><code>artemis.profile</code> - system properties and JVM arguments (e.g. <code>Xmx</code>, <code>Xms</code>,
etc.) </li>
<li><code>artemis-roles.properties</code> - user/role mapping for the default
<a href="security.html#propertiesloginmodule">properties-based JAAS login module</a></li>
<li><code>artemis-users.properties</code> - user/password for the default
<a href="security.html#propertiesloginmodule">properties-based JAAS login module</a></li>
<li><code>bootstrap.xml</code> - embedded web server, security, location of <code>broker.xml</code></li>
<li><code>broker.xml</code> - core broker configuration, e.g. acceptors, addresses, queues,
diverts, clustering; <a href="configuration-index.html">full reference</a>.</li>
<li><code>jolokia-access.xml</code> - <a href="https://jolokia.org/reference/html/security.html" target="_blank">security for Jolokia</a>,
specifically Cross-Origin Resource Sharing (CORS)</li>
<li><code>logging.properties</code> - <a href="logging.html">logging config</a> like levels, log files
locations, etc.</li>
<li><code>login.config</code> - standard Java configuration for JAAS <a href="security.html">security</a></li>
<li><code>management.xml</code> - remote connectivity and <a href="management.html#role-based-authorisation-for-jmx">security for JMX MBeans</a></li>
</ul>
<h3 id="bootstrap-configuration-file">Bootstrap configuration file</h3>
<p>The <code>bootstrap.xml</code> file is very simple. Let&apos;s take a look at an example:</p>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">broker</span> <span class="hljs-attr">xmlns</span>=<span class="hljs-string">&quot;http://activemq.apache.org/schema&quot;</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">jaas-security</span> <span class="hljs-attr">domain</span>=<span class="hljs-string">&quot;activemq&quot;</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">server</span> <span class="hljs-attr">configuration</span>=<span class="hljs-string">&quot;file:/path/to/broker.xml&quot;</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">web</span> <span class="hljs-attr">path</span>=<span class="hljs-string">&quot;web&quot;</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">binding</span> <span class="hljs-attr">uri</span>=<span class="hljs-string">&quot;http://localhost:8161&quot;</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">app</span> <span class="hljs-attr">url</span>=<span class="hljs-string">&quot;activemq-branding&quot;</span> <span class="hljs-attr">war</span>=<span class="hljs-string">&quot;activemq-branding.war&quot;</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">app</span> <span class="hljs-attr">url</span>=<span class="hljs-string">&quot;artemis-plugin&quot;</span> <span class="hljs-attr">war</span>=<span class="hljs-string">&quot;artemis-plugin.war&quot;</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">app</span> <span class="hljs-attr">url</span>=<span class="hljs-string">&quot;console&quot;</span> <span class="hljs-attr">war</span>=<span class="hljs-string">&quot;console.war&quot;</span>/&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">binding</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">web</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">broker</span>&gt;</span>
</code></pre>
<ul>
<li><p><code>jaas-security</code> - Configures JAAS-based security for the server. The
<code>domain</code> attribute refers to the relevant login module entry in
<code>login.config</code>. If different behavior is needed then a custom security
manager can be configured by replacing <code>jaas-security</code> with
<code>security-manager</code>. See the &quot;Custom Security Manager&quot; section in the
<a href="security.html">security chapter</a> for more details.</p>
</li>
<li><p><code>server</code> - Instantiates a core server using the configuration file from the
<code>configuration</code> attribute. This is the main broker POJO necessary to do all
the real messaging work.</p>
</li>
<li><p><code>web</code> - Configures an embedded web server for things like the admin console.</p>
</li>
</ul>
<h3 id="broker-configuration-file">Broker configuration file</h3>
<p>The configuration for the Apache ActiveMQ Artemis core broker is contained in
<code>broker.xml</code>.</p>
<p>There are many attributes which you can configure for 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 <code>configuration</code> element is a valid
configuration file. The different configuration will be explained throughout the
manual or you can refer to the configuration reference <a href="configuration-index.html">here</a>.</p>
<h2 id="system-property-substitution">System Property Substitution</h2>
<p>It is possible to use system property substitution in all the configuration
files. by replacing a value with the name of a system property. Here is an
example of this with a connector configuration:</p>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">connector</span> <span class="hljs-attr">name</span>=<span class="hljs-string">&quot;netty&quot;</span>&gt;</span>tcp://${activemq.remoting.netty.host:localhost}:${activemq.remoting.netty.port:61616}<span class="hljs-tag">&lt;/<span class="hljs-name">connector</span>&gt;</span>
</code></pre>
<p>Here you can see we have replaced 2 values with system properties
<code>activemq.remoting.netty.host</code> and <code>activemq.remoting.netty.port</code>. These values
will be replaced by the value found in the system property if there is one, if
not they default back to <code>localhost</code> or <code>61616</code> respectively. It is also possible
to not supply a default. i.e. <code>${activemq.remoting.netty.host}</code>, however the
system property <em>must</em> be supplied in that case.</p>
<h2 id="windows-server">Windows Server</h2>
<p>On windows you will have the option to run ActiveMQ Artemis as a service. Just
use the following command to install it:</p>
<pre><code> $ ./artemis-service.exe install
</code></pre><p>The create process should give you a hint of the available commands available
for the artemis-service.exe</p>
<h2 id="adding-bootstrap-dependencies">Adding Bootstrap Dependencies</h2>
<p>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 <code>JAVA_ARGS</code>, defined in <code>artemis.profile</code>, with the option <code>-Xbootclasspath/a</code>.</p>
<h2 id="adding-runtime-dependencies">Adding Runtime Dependencies</h2>
<p>Runtime dependencies like diverts, transformers, broker plugins, JDBC drivers,
password decoders, etc. must be accessible by the broker at runtime. Package
the dependency in a jar, and put it on the broker&apos;s classpath. This can be done
by placing the jar file in the <code>lib</code> directory of the broker distribution
itself or in the <code>lib</code> directory of the broker instance. A broker instance does
not have a <code>lib</code> directory by default so it may need to be created. It should
be on the &quot;top&quot; level with the <code>bin</code>, <code>data</code>, <code>log</code>, etc. directories.</p>
</section>
</div>
<div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
</div>
</div>
</div>
<a href="architecture.html" class="navigation navigation-prev " aria-label="Previous page: Architecture">
<i class="fa fa-angle-left"></i>
</a>
<a href="upgrading.html" class="navigation navigation-next " aria-label="Next page: Upgrading">
<i class="fa fa-angle-right"></i>
</a>
</div>
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"Using the Server","level":"1.8","depth":1,"next":{"title":"Upgrading","level":"1.9","depth":1,"path":"upgrading.md","ref":"upgrading.md","articles":[]},"previous":{"title":"Architecture","level":"1.7","depth":1,"path":"architecture.md","ref":"architecture.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"version":"2.24.0","title":"ActiveMQ Artemis Documentation","links":{"home":"http://activemq.apache.org/artemis","issues":"https://issues.apache.org/jira/browse/ARTEMIS","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ Artemis User Guide and Reference Documentation"},"file":{"path":"using-server.md","mtime":"2022-08-08T16:17:30.772Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2022-08-08T16:18:17.607Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>
<script src="gitbook/gitbook.js"></script>
<script src="gitbook/theme.js"></script>
<script src="gitbook/gitbook-plugin-search/search-engine.js"></script>
<script src="gitbook/gitbook-plugin-search/search.js"></script>
<script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
<script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
<script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
<script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
</body>
</html>