Table of Contents
Introduction
Legal Notice
Preface
Project Info
Versions
Messaging Concepts
Architecture
Using the Server
Upgrading
Address Model
Using JMS
Using Core
Using AMQP
Mapping JMS Concepts to the Core API
The Client Classpath
Examples
Routing Messages With Wild Cards
Understanding the Apache ActiveMQ Artemis Wildcard Syntax
Filter Expressions
Persistence
Configuring Transports
Configuration Reload
Detecting Dead Connections
Detecting Slow Consumers
Avoiding Network Isolation
Detecting Broker Issues (Critical Analysis)
Resource Manager Configuration
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15
1.16
1.17
1.18
1.19
1.20
1.21
1.22
1.23
1.24
1.25
1.26
1.27
1
Flow Control
Guarantees of sends and commits
Message Redelivery and Undelivered Messages
Message Expiry
Large Messages
Paging
Scheduled Messages
Last-Value Queues
Exclusive Queues
Message Grouping
Extra Acknowledge Modes
Management
Management Console
Security
Masking Passwords
Broker Plugins
Resource Limits
The JMS Bridge
Client Reconnection and Session Reattachment
Diverting and Splitting Message Flows
Core Bridges
Duplicate Message Detection
Clusters
High Availability and Failover
Graceful Server Shutdown
Libaio Native Libraries
Thread management
Logging
REST Interface
Embedding Apache ActiveMQ Artemis
1.28
1.29
1.30
1.31
1.32
1.33
1.34
1.35
1.36
1.37
1.38
1.39
1.40
1.41
1.42
1.43
1.44
1.45
1.46
1.47
1.48
1.49
1.50
1.51
1.52
1.53
1.54
1.55
1.56
1.57
2
Apache Karaf
Apache Tomcat
Spring Integration
CDI Integration
Intercepting Operations
Protocols and Interoperability
Tools
Maven Plugin
Unit Testing
Troubleshooting and Performance Tuning
Configuration Reference
1.58
1.59
1.60
1.61
1.62
1.63
1.64
1.65
1.66
1.67
1.68
3
Introduction
Apache ActiveMQ Artemis User Manual
The User manual is an in depth manual on all aspects of Apache ActiveMQ Artemis
4
Legal Notice
Legal Notice
Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements. See the NOTICE file distributed with this work for additional
information regarding copyright ownership. The ASF licenses this file to You under the
Apache License, Version 2.0 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License.
5
Preface
Preface
What is Apache ActiveMQ Artemis?
Apache ActiveMQ Artemis is an open source project to build a multi-protocol,
embeddable, very high performance, clustered, asynchronous messaging system.
Apache ActiveMQ Artemis is an example of Message Oriented Middleware (MoM).
For a description of MoMs and other messaging concepts please see the
Messaging Concepts.
Why use Apache ActiveMQ Artemis? Here are just a few of the reasons:
100% open source software. Apache ActiveMQ Artemis is licensed using the
Apache Software License v 2.0 to minimise barriers to adoption.
Apache ActiveMQ Artemis is designed with usability in mind.
Written in Java. Runs on any platform with a Java 8+ runtime, that's everything from
Windows desktops to IBM mainframes.
Amazing performance. Our ground-breaking high performance journal provides
persistent messaging performance at rates normally seen for non-persistent
messaging, our non-persistent messaging performance rocks the boat too.
Full feature set. All the features you'd expect in any serious messaging system, and
others you won't find anywhere else.
Elegant, clean-cut design with minimal third party dependencies. Run ActiveMQ
Artemis stand-alone, run it in integrated in your favourite Java EE application server,
or run it embedded inside your own product. It's up to you.
Seamless high availability. We provide a HA solution with automatic client failover
so you can guarantee zero message loss or duplication in event of server failure.
Hugely flexible clustering. Create clusters of servers that know how to load balance
messages. Link geographically distributed clusters over unreliable connections to
form a global network. Configure routing of messages in a highly flexible way.
6
Project Info
Project Information
The official Apache ActiveMQ Artemis project page is
http://activemq.apache.org/artemis/.
Software Download
The software can be download from the Download
page:http://activemq.apache.org/artemis/download.html
Project Information
If you have any user questions please use our user forum
If you have development related questions, please use our developer forum
Pop in and chat to us in our IRC channel
Apache ActiveMQ Artemis Git repository is https://github.com/apache/activemq-
artemis
All release tags are available from https://github.com/apache/activemq-
artemis/releases
And many thanks to all our contributors, both old and new who helped create Apache
ActiveMQ Artemis.
7
Versions
Versions
This chapter provides the information for each release:
A link to the full release notes which includes all issues resolved in the release.
A brief list of "highlights."
If necessary, specific steps required when upgrading from the previous version.
NOTE: If the upgrade spans multiple versions then the steps from each version
need to be followed in order.
NOTE: Follow the general upgrade procedure outlined in the Upgrading the
Broker chapter in addition to any version-specific upgrade instructions.
2.5.0
Full release notes.
Highlights:
Exclusive consumers.
Equivalent ActiveMQ 5.x Virtual Topic naming abilities.
SSL Certificate revocation list.
Last-value queue support for OpenWire.
Support masked passwords in bootstrap.xm and login.config
Configurable broker plugin implementation for logging various broker events (i.e.
LoggingActiveMQServerPlugin ).
Option to use OpenSSL provider for Netty via the sslProvider URL parameter.
Enable splitting of broker.xml into multiple files.
Enhanced message count and size metrics for queues.
Upgrading from 2.4.0
1. Due to changes from ARTEMIS-1644 any acceptor that needs to be compatible
with HornetQ and/or Artemis 1.x clients needs to have
anycastPrefix=jms.queue.;multicastPrefix=jms.topic. in the acceptor url. This
prefix used to be configured automatically behind the scenes when the broker
detected these old types of clients, but that broke certain use-cases with no possible
work-around. See ARTEMIS-1644 for more details.
8