Fact-checked by Grok 2 weeks ago

Apache ActiveMQ

Apache ActiveMQ is an open-source, multi-protocol, Java-based messaging broker designed to facilitate reliable communication between applications across diverse programming languages and platforms, such as JavaScript, C, Python, and .NET. It supports industry-standard protocols including AMQP, STOMP, MQTT, and JMS (Java Message Service), enabling seamless integration in enterprise environments. Key features include high availability through shared storage or replication, load balancing for scalability, and flexible deployment options as either a standalone server or an embedded component within applications. Apache ActiveMQ encompasses two primary implementations: ActiveMQ Classic, which provides robust support for JMS 1.1 and partial compatibility with Jakarta Messaging 3.1/JMS 2.0, along with persistence options like KahaDB and JDBC, making it suitable for established enterprise systems; and ActiveMQ Artemis, a high-performance broker offering full support for Jakarta Messaging 3.1, JMS 2.0, and 1.1, with advanced journaling for modern, scalable microservices architectures. Originally developed as a versatile solution for messaging and integration patterns, ActiveMQ Classic has served multiple generations of applications, while addresses the needs of next-generation systems, particularly in IoT device management and enterprise integration frameworks like .

History and Development

Origins of ActiveMQ Classic

Apache ActiveMQ Classic originated in 2004 as an open-source Java-based developed by , Hiram Chirino, and other contributors at LogicBlaze, initially hosted under the Codehaus foundation. The project was donated to and accepted into its on November 18, 2005, marking its transition to Apache governance. The first public release, version 1.0, arrived in late 2005 and emphasized compliance with the 1.1 specification, enabling core messaging patterns including point-to-point queuing and publish-subscribe topics. This foundation allowed developers to build decoupled applications using asynchronous communication, with initial support for transports like and basic persistence options. Early milestones shaped its growth within . In 2006, the OpenWire protocol was integrated as the native binary wire format, facilitating efficient, cross-language serialization of commands and s between clients and the broker. The project graduated from the to top-level Apache status on January 17, 2007, reflecting community maturity and broad adoption. By 2008, the KahaDB persistence store was adopted, introducing a file-based, journaled database optimized for high-throughput durability and recovery. The 5.x series, beginning with version 5.0.0 on December 7, 2007, drove significant evolution through 2023, prioritizing a modular, pluggable that allowed interchangeable transports (e.g., VM, SSL) and persistence adapters. This design enabled customization for diverse environments, from embedded use cases to enterprise-scale deployments, while maintaining JMS compliance and expanding protocol support. In the 2010s, efforts shifted toward ActiveMQ Artemis as a high-performance successor.

Emergence of ActiveMQ Artemis

ActiveMQ Artemis emerged as a next-generation to succeed Apache ActiveMQ Classic, which had served as the foundational project since its inception in the early 2000s. Developed initially by as HornetQ from 2007 to 2014, the codebase addressed evolving enterprise demands for enhanced messaging capabilities. In October 2014, donated the HornetQ codebase to , where it was rebranded and integrated into the ActiveMQ ecosystem as ActiveMQ . This donation brought together the HornetQ community with the broader ActiveMQ project to foster collaborative development of a more advanced broker. The primary rationale for creating ActiveMQ was to overcome limitations in ActiveMQ , particularly in scalability for high-throughput environments, support for non-blocking I/O to improve performance under load, and compatibility with modern protocols like AMQP and to meet growing enterprise integration needs. These enhancements enabled better handling of asynchronous messaging in distributed systems without the bottlenecks observed in the older architecture. The initial Apache release of ActiveMQ Artemis version 1.0 occurred in May 2015, marking the first official distribution of the donated codebase with rebranding and ecosystem alignment. Key early features included the address model for flexible and core bridging for interoperability, establishing parity with essential ActiveMQ Classic functionalities while introducing foundational improvements. Subsequent milestones reinforced its evolution: version 2.0, released in March 2017, introduced compatibility with standards, including support for JMS 2.0 to facilitate with contemporary application servers. By 2019, a full path from ActiveMQ Classic to Artemis was announced, providing tools and documentation to ease transitions for existing users and solidifying Artemis as the recommended successor.

Recent Milestones and Versions

The ActiveMQ 6.1.x series is now , with the 6.1.8 maintenance release issued on October 22, 2025, incorporating updates for 3.1 compatibility and security patches to address vulnerabilities in dependencies. The more recent 6.2.0 release on November 14, 2025, marks a new milestone, starting the 6.2.x series as the current stable supported branch with enhancements for long-term stability in legacy deployments. This follows the end-of-life for the 5.18.x series on March 11, 2025, which marked the of that version after its initial release in 2023. In parallel, the ActiveMQ Artemis 2.4x series serves as the primary development branch, emphasizing modern enhancements and performance optimizations. The 2.44.0 version was released on November 3, 2025, introducing support for 25 and an option to disable for specific network configurations, alongside bug fixes for improved reliability. Earlier in the series, the 2.43.0 release on October 16, 2025, added support for the PROXY protocol on acceptors and enhanced broker through executor service metrics, enabling better of thread pools in production environments. Strategically, ActiveMQ Artemis has been positioned as the next-generation broker since its integration into the project, with a aimed at achieving feature parity with while prioritizing asynchronous, high-throughput messaging for ; this shift includes enhanced clustering and federation for horizontal scaling, aligning with cloud-native architectures such as deployments. The end-of-life for ActiveMQ Classic 6.0 occurred on March 17, 2024, redirecting maintenance efforts toward the 6.2.x series and Artemis. Under governance, the project maintains dual branches for and to support diverse user needs, with ongoing community contributions driving releases; this approach was reinforced by board oversight ensuring balanced development post-2020, amid growing adoption in messaging systems.

Core Architecture

ActiveMQ Classic Design

ActiveMQ employs a modular broker centered around the Broker service, which acts as the central hub for message processing, routing messages between producers and consumers through configurable transport connectors and destinations. The Broker service manages the lifecycle of , sessions, and message exchanges, supporting extensibility through plugins and interceptors for custom behaviors. Transport connectors, such as OpenWire for clients and VM for in-JVM communication, facilitate protocol-specific communication between clients and the broker, enabling seamless integration across diverse environments. Destination management handles queues for point-to-point messaging and topics for publish-subscribe patterns, allowing dynamic creation and administration of these endpoints via APIs or configuration files. Message routing in ActiveMQ relies on demand-based forwarding, where dispatches messages to consumers only when demand is detected, optimizing resource usage by avoiding unnecessary buffering. This mechanism integrates with virtual destinations, which map logical endpoints to multiple physical queues or topics, enabling advanced patterns like load balancing across consumers without client-side awareness. Composite destinations further enhance routing by allowing a single send operation to target multiple destinations simultaneously, such as forwarding a message from one queue to several others based on selectors or filters, with options for forward-only mode to prevent direct consumption from the composite. These features promote flexible, broker-side routing logic for complex messaging topologies. The persistence layer in ActiveMQ Classic provides reliable message storage through KahaDB, a file-based journaling store that logs operations in sequential files for atomic commits and fast recovery, serving as the default since version 5.4. KahaDB supports configurable disk synchronization strategies, such as periodic syncing every second, and compaction to manage storage efficiency, while enabling concurrent store-and-dispatch for queues to balance persistence and delivery speed. JDBC persistence offers an alternative for integrating with relational databases like or , using SQL tables for message and acknowledgment storage, though it trades some performance for shared database capabilities in clustered setups. Store-and-forward mechanisms ensure durability by persisting messages locally until acknowledged by downstream consumers or brokers, particularly in network topologies where messages traverse multiple hops. ActiveMQ Classic's threading model emphasizes synchronous dispatch by default for low-latency delivery to fast consumers, where messages are sent directly without intermediate queuing, though asynchronous options mitigate blocking in high-load scenarios via configurable dispatch policies. This approach uses dedicated threads per session or consumer, potentially leading to higher thread counts under load, with optimizations like transports to reduce context switching. Redelivery policies govern handling of failed messages, allowing configurable delays, multipliers (default 5), and maximum attempts (default 6) before routing to a , ensuring robust recovery without overwhelming the system. In contrast to ActiveMQ Artemis's non-blocking I/O model, Classic's synchronous design prioritizes JMS compliance and simplicity in traditional enterprise environments.

ActiveMQ Artemis Design

Apache ActiveMQ Artemis employs a modern, built around a core messaging engine that leverages non-blocking I/O to achieve high throughput and low latency in message processing. The engine uses Netty as its networking layer, enabling scalable, asynchronous handling of connections and supporting multiple protocols without blocking threads. This design, inherited from HornetQ and refined post-2014, contrasts with the more synchronous approach of ActiveMQ Classic by prioritizing reactivity and resource efficiency. At the heart of the system is the address model, which provides a unified mechanism for handling both queues and topics across protocols such as JMS, AMQP, STOMP, and MQTT. An address serves as a post office-style endpoint where messages are routed, bound to one or more queues based on routing types: anycast for point-to-point delivery to a single consumer queue, or multicast for publish-subscribe distribution to all bound queues. This abstraction allows seamless protocol interoperability, with automatic creation of addresses and queues configurable via settings like auto-create-addresses and default-address-routing-type in the broker's XML configuration. Filters can further refine routing, ensuring messages reach only qualified consumers. Persistence in ActiveMQ Artemis relies on an asynchronous, journaling system optimized for messaging workloads, avoiding the overhead of relational databases. The journal consists of pre-allocated files—typically 10 MiB for messages and 1 MiB for bindings—where operations like adds, updates, and deletes are sequentially appended to minimize disk seeks and enable high-performance transactional guarantees, including XA support. For scenarios involving large messages or memory constraints, paging activates to offload data to disk directories, storing entire addresses' contents when global limits are exceeded, thus maintaining system stability without halting producers. Garbage collection and compaction periodically reclaim space by removing obsolete records. Inter-broker communication is facilitated through core bridges and divert configurations, enabling federation-like message forwarding across nodes. Core bridges connect a source queue on one Artemis broker to a target address on another, providing resilient, WAN-friendly transfer with automatic retries, duplicate detection for once-and-only-once semantics, and configurable parameters like retry intervals in the broker.xml file. Unlike JMS bridges, core bridges operate at the native protocol level for efficiency between Artemis instances. Diverts, meanwhile, handle intra-broker routing by transparently redirecting messages from a source address to one or more targets, either exclusively (bypassing the original) or non-exclusively (copying while preserving original flow), with options for filters, transformers, and routing modes like ANYCAST or MULTICAST. These are defined statically in configuration or dynamically via management APIs. The architecture's modularity is evident in its plugin system, particularly acceptor factories and interceptor chains, which allow without altering the core. Acceptor factories, configured via URL-based elements in broker.xml, instantiate protocol-specific handlers using Netty transports (e.g., , SSL) and support multi-protocol endpoints on a single port, auto-detecting clients like or AMQP while restricting via the protocols parameter for . Interceptor chains enable protocol-agnostic custom processing by hooking into incoming or outgoing packets; implementers extend interfaces like Interceptor for core operations or protocol-specific ones (e.g., StompFrameInterceptor), returning true to proceed or false to abort, with server-side registration in configuration for tasks such as auditing or filtering. This extensibility ensures the broker adapts to diverse enterprise needs.

Key Features

Supported Protocols and Standards

Apache ActiveMQ supports a range of messaging protocols to ensure broad interoperability across different client languages and systems, with variations between its Classic and Artemis implementations. Both variants emphasize standards-based communication to facilitate integration in enterprise environments. Core protocols include the Java Message Service (JMS) API, Advanced Message Queuing Protocol (AMQP) 1.0, Simple Text Oriented Messaging Protocol (STOMP), Message Queuing Telemetry Transport (MQTT), and the proprietary OpenWire binary protocol. In ActiveMQ Classic, full support exists for JMS 1.1, with partial implementation of JMS 2.0 and 3.1, enabling Java-based clients to leverage standardized messaging semantics. ActiveMQ Artemis provides complete support for 3.1, building on its native Core protocol to deliver JMS-compliant functionality without defining a separate network protocol. OpenWire serves as the legacy binary protocol primarily in Classic, optimized for high-performance Java clients, while Artemis includes compatibility for OpenWire clients from version 5.12.x onward to ease migrations. AMQP 1.0 has been natively supported in Artemis since , allowing seamless cross-language messaging with non-Java clients. STOMP support enables lightweight, text-based communication for scripting languages like or , with automatic mapping to message types—such as converting STOMP text messages to JMS TextMessage or BytesMessage based on content-length headers. ActiveMQ Classic supports STOMP 1.1, while ActiveMQ Artemis supports STOMP 1.0, 1.1, and 1.2. support caters to () scenarios through its publish-subscribe model, suitable for resource-constrained devices, and includes features like retained messages and quality-of-service levels. ActiveMQ Classic supports 3.1 and 3.1.1, while ActiveMQ Artemis supports 3.1, 3.1.1, and 5.0. To enhance interoperability, ActiveMQ employs transformer plugins that convert message formats between protocols; for instance, OpenWire messages can be automatically transformed for STOMP consumers, and vice versa, using headers like transformation types for XML or to object . ActiveMQ adheres to key standards for reliability and , including full XA transaction support via the Java Transaction API (JTA) for distributed transactions across sessions. Additionally, both and integrate Jolokia for REST-like , providing a JMX-over-HTTP bridge to monitor and control broker operations without direct JMX exposure. This combination of protocols and standards positions ActiveMQ as a versatile broker for heterogeneous messaging ecosystems.

Persistence Mechanisms

Apache ActiveMQ ensures message durability and recovery through distinct persistence mechanisms tailored to its two primary broker implementations: ActiveMQ and ActiveMQ . These mechanisms store messages and transaction data on disk or in databases, preventing loss during broker restarts or failures. Both support configurable options to balance performance and reliability, with emphasizing file-based and JDBC options for traditional setups, while prioritizes an optimized file journal for high-throughput scenarios. In ActiveMQ Classic, relies on KahaDB as the default file-based store since version 5.4, which uses a local directory of files optimized for fast message and . KahaDB employs compaction to reclaim space by merging files, reducing storage overhead while maintaining quick access times through indexed operations. For database integration, JDBC supports major SQL databases like , , and , allowing messages to be stored in relational tables with customizable DDL statements. from crashes in JDBC setups leverages a high-performance as a redo log, which asynchronously checkpoints to the database at configurable intervals, ensuring durability without immediate synchronous writes. ActiveMQ Artemis employs a file journal as its primary persistence mechanism, consisting of pre-allocated append-only files in the data directory for messages and bindings, supporting asynchronous writes via options like or for high performance. This journal handles transactions and garbage collection efficiently, with configurable file sizes (default 10 for messages) to optimize disk I/O. For overflow scenarios, paging stores excess messages per address in dedicated page files when in-memory limits are exceeded, using a configurable page size (default 10 ) to manage large queues without depleting . Large messages beyond journal thresholds are directed to external storage in the large-messages directory, integrating seamlessly with the paging system for durability. JDBC remains an alternative for database-backed persistence, though it is less performant than the file journal and suited for environments requiring relational querying. Reliability in both brokers is enhanced through modes for acknowledgments and policies. Producers can use synchronous acknowledgments for immediate confirmation or asynchronous ones to minimize , with Artemis recommending async acks for non-al durable sends to avoid blocking while ensuring separate guarantees via journal sync. Configurable policies, such as disabling journal data sync in Artemis for faster writes (at the risk of minor on power failure) or lazy syncing in , allow tuning between speed and fault tolerance. Consumers support modes like pre-acknowledge in Artemis to batch acknowledgments, reducing network overhead while maintaining delivery semantics. Backup strategies complement single-broker persistence by enabling . In , shared storage via a or compatible (e.g., NFSv4) allows a backup broker to access the same KahaDB or JDBC directory, providing without replication overhead but requiring reliable exclusive locks for consistency. supports replication for backups, where durable from the is asynchronously duplicated over the network to a secondary , ensuring post-failure with initial synchronization; shared store is also available for low-latency environments using a common .

Clustering and High Availability

Apache ActiveMQ Classic implements clustering through a network of brokers, enabling distributed processing across multiple nodes for enhanced scalability and . In this setup, brokers connect via static or dynamic discovery mechanisms, such as or , to form a federated where are forwarded between brokers using store-and-forward protocols. This allows for load distribution of queues and topics without requiring a shared store, supporting scenarios where producers and consumers are spread across different brokers. For in ActiveMQ , the master-slave utilizes a shared , such as a Storage Area Network (), where the master broker locks the shared journal and data files, replicating persistence to one or more slaves. Upon master failure, a slave acquires the lock and assumes the master's role, ensuring minimal downtime and message durability through the shared storage, which inherently prevents scenarios by enforcing exclusive access via file locking. This approach integrates with persistence mechanisms during , where committed messages remain accessible without loss. ActiveMQ Artemis advances clustering with a more flexible , supporting live-backup pairs through either shared store or replication policies. In shared store mode, live and backup servers access a common data directory on a shared , allowing rapid as the backup activates without data synchronization overhead. Replication mode, conversely, synchronizes data over the network between paired live and backup nodes, configured via group names to ensure pairings and avoid conflicts; colocated backups run within the same JVM as lives for efficiency, limited by parameters like max-backups. occurs via broadcast groups using or JGroups, enabling dynamic cluster formation. Load balancing in both variants emphasizes equitable message distribution. ActiveMQ Classic employs competing consumers on distributed queues for consumer-side balancing and network connectors for broker-side forwarding, with dispatch policies optimizing delivery based on consumer demand. In Artemis, cluster connections facilitate dispatching across nodes by default, configurable to or strict modes to forward messages only when consumers are present, while weighted options are absent but load can be influenced via node-specific configurations. prevention in Artemis relies on unique node IDs and through shared storage locks or replication pairing, ensuring only one node activates per group. Scalability in Artemis supports horizontal expansion to large clusters, with performance scaling based on and distribution, enabling dozens to hundreds of nodes in environments without inherent limits. On , Artemis features message redistribution via scale-down, where undelivered messages from failed nodes are automatically forwarded to active nodes with matching consumers, configurable with delays to optimize throughput. Classic networks similarly redistribute via forwarding but may require manual reconfiguration for very large setups. These mechanisms ensure fault-tolerant operation, with failover times typically under seconds in well-tuned clusters.

Usage and Implementation

Deployment Scenarios

Apache ActiveMQ can be deployed in standalone configurations suitable for development and simple applications, where the broker runs as an independent process or is embedded directly within a Java application. In ActiveMQ Classic, a standalone broker is started using the command-line tool, such as bin/activemq start on Unix systems, which launches the server on the default OpenWire port 61616 for message exchange. For development purposes, this server mode allows quick testing via the integrated web console accessible at http://localhost:8161/admin with default credentials admin/admin. Similarly, ActiveMQ Artemis supports standalone deployment by creating an instance with the CLI command artemis create mybroker and starting it via bin/artemis run, configuring the broker through files in the etc directory. Embedded broker setups integrate ActiveMQ directly into Java applications, eliminating the need for a separate process and enabling lightweight, in-process messaging. For ActiveMQ Classic, embedding occurs within a JMS connection factory, where the broker is instantiated programmatically to handle messages internally without external network dependencies. In ActiveMQ Artemis, embedding is achieved by specifying the server configuration in bootstrap.xml, allowing the broker to run alongside the application for scenarios like unit testing or single-node prototypes. Enterprise deployments leverage and cloud-native tools to scale ActiveMQ across distributed environments, supporting and . ActiveMQ Artemis provides official images on Docker Hub, which can be run with commands like docker run -p 61616:61616 -p 8161:8161 apache/activemq-artemis:latest-alpine to expose ports and the management console, with options for custom configurations via environment variables or volume mounts for persistence. For , the ArtemisCloud project offers container images and a operator to manage broker deployments, enabling automated scaling, persistence via PersistentVolumes, and multi-broker clustering in environments like . Cloud integrations include Amazon MQ, a managed service for ActiveMQ Classic on AWS that handles provisioning, patching, and scaling without manual infrastructure management. On , ActiveMQ is available through the for deployments, facilitating integration with services like Virtual Networks and Storage for enterprise messaging workloads. Migration from ActiveMQ Classic to involves updating broker configurations and client connections to leverage Artemis's enhanced while maintaining with core messaging patterns. The official migration guide details mapping Classic's XML elements, such as transport connectors in activemq.xml, to equivalents in Artemis's broker.xml, including adjustments for and networking to ensure seamless broker transitions. Client updates typically require minimal changes due to JMS 2.0 support, but involve switching to Artemis-specific libraries for protocols like AMQP and , with tools provided for address and queue reconfiguration. Configuration basics for ActiveMQ rely on XML files to tune broker resources, ensuring optimal operation in varied deployment contexts. In , the activemq.xml file defines limits via <systemUsage>, such as <memoryUsage limit="64 mb"/> to cap in-memory message storage, while occurs through connector attributes like maximumConnections=1000 on transport URIs. Connectors are specified under <transportConnectors>, for example, <transportConnector name="openwire" uri="tcp://[0.0.0.0](/page/0.0.0.0):61616"/> to enable protocol-specific endpoints. For ActiveMQ Artemis, broker.xml handles similar tuning with <global-max-size> for overall thresholds (defaulting to half of JVM max heap), <thread-pool-max-size default="30"> for concurrent processing, and <connectors> elements listing URIs like tcp://[0.0.0.0](/page/0.0.0.0):61616 for inbound connections. These XML adjustments allow fine-grained control over resources without code changes, adapting to deployment scale.

Client Integration and APIs

Apache ActiveMQ provides robust client integration through its support for the Jakarta Messaging (formerly JMS) API, enabling Java developers to interact with the broker using standardized interfaces. The core components include the ConnectionFactory for establishing connections, Session for managing message flows, MessageProducer for sending messages, and MessageConsumer for receiving them. To create a connection, developers instantiate a ConnectionFactory configured with broker details, such as the URL (e.g., tcp://localhost:61616), and use it to obtain a Connection. From the connection, a session is created with parameters specifying transacted behavior and acknowledgment mode, such as Session.AUTO_ACKNOWLEDGE for automatic handling. Producers and consumers are then derived from the session, bound to specific destinations like queues or topics. For example, sending a text message involves creating a TextMessage via the session and invoking send() on the producer. Durable subscribers enhance reliability for topic-based messaging by ensuring messages are retained for offline clients. To implement this, the ConnectionFactory must be configured with a client ID (e.g., via the clientId property), and the consumer is created as durable using createDurableSubscriber() with a subscription name. This setup allows the broker to store messages in a durable associated with the client ID, delivering them upon reconnection even after restarts. Pre-configuring the durable on the server side, such as in the broker's XML with <queue name="durableSubscription"/>, is recommended for persistence. For cross-language support, ActiveMQ leverages open protocols like STOMP, AMQP, and , allowing integration without Java-specific dependencies. In C++, developers can use the Qpid Proton library to connect via AMQP 1.0, providing a native interface for sending and receiving messages over or transports. For Python, the stomp.py library facilitates STOMP-based communication, supporting versions 1.0 to 1.2; connections are established with a broker URL, and subscriptions are handled through simple connect/subscribe methods. Node.js applications integrate via using the mqtt.js library, which supports versions 3.1, 3.1.1, and 5.0, enabling publish/subscribe patterns with automatic reconnection features. These libraries are recommended for their compatibility and active maintenance, ensuring seamless interoperability with the broker's multi-protocol acceptors. Advanced messaging patterns are supported through JMS extensions. The request-reply pattern is implemented using temporary queues: a sender creates a temporary destination via session.createTemporaryQueue(), sets it as the JMSReplyTo header on the request , and uses a synchronous receive() on a consumer bound to the temporary queue to await the reply. This enables asynchronous request processing while maintaining via message IDs. For distributed , XA support is provided through XAConnectionFactory, allowing enlistment in XA s managed by a transaction manager like those in EE environments; messages sent or received within an XA session are committed or rolled back atomically across resources. Error handling is facilitated by the ExceptionListener interface, where clients register a listener on the connection to receive notifications of failures, such as connection loss, enabling automatic reconnection or logic. Tooling enhances client-side and integration. The admin offers dynamic control via JMX or the core , allowing programmatic creation of addresses, queues, and monitoring of metrics from client code using ActiveMQServerControl proxies over . For applications, auto-configuration via ArtemisAutoConfiguration automatically sets up an embedded broker or connects to a remote one when spring-boot-starter-artemis is on the , injecting a pre-configured JmsTemplate and ConnectionFactory for streamlined usage without boilerplate setup.

Performance Evaluation

Benchmarking Methodologies

Benchmarking Apache ActiveMQ involves standardized approaches to evaluate its messaging performance under various loads and configurations, ensuring reproducible results across ActiveMQ Classic and ActiveMQ Artemis implementations. Common testing frameworks include for load simulation in ActiveMQ Classic, which supports creating producer and consumer test plans to mimic real-world traffic patterns, and the built-in PerfTest tool for ActiveMQ Artemis, a JMS 2.0-based utility that generates producer, consumer, or combined client loads. Additionally, the Performance Plugin for ActiveMQ Classic enables automated execution of benchmarks via command-line or pipelines, producing XML reports for analysis. Key performance metrics focus on throughput, measured as messages per second for sent, received, or completed operations; , captured in milliseconds with percentiles (e.g., 50th, 90th, 99th) for end-to-end transfer times; and durability overhead, which quantifies the additional processing time or reduced throughput when enabling persistent messaging modes. These metrics are influenced by factors such as payload size (configurable from small fixed bytes to variable lengths), concurrency levels (number of producers and consumers), and delivery modes (persistent versus non-persistent). For instance, larger payloads increase , while higher concurrency can saturate throughput up to limits. Performance results vary significantly based on , , and configuration. Setup guidelines emphasize controlled environments to isolate variables. Benchmarks should distinguish between single-node tests, which assess baseline broker performance, and clustered configurations, involving multiple nodes with shared storage or network replication to evaluate and . Hardware specifications are critical, including multi-core CPUs (e.g., 8+ cores for high-throughput scenarios), sufficient (at least 4-8 GB allocated to the JVM), and high-IOPS disk storage for persistence-enabled tests to minimize I/O bottlenecks. Protocol-specific tests are recommended, such as using OpenWire for ActiveMQ Classic or the Core protocol for , with adjustments for others like AMQP via dedicated perf tools to account for protocol overhead. Persistence mechanisms, such as journal-based storage in , can introduce measurable overhead in these setups but are essential for durability benchmarks. The ActiveMQ community provides official benchmark suites on , including JMeter test plans in the ActiveMQ Classic repository and PerfTest scripts along with test modules in the ActiveMQ repository, offering repeatable setups with configuration examples for both versions. These resources include scripts for varying sizes, concurrency, and topologies, facilitating standardized comparisons without requiring custom development.

Comparative Performance Data

Apache ActiveMQ Classic achieves throughput rates of approximately 21,000 to 22,000 s per second in non-persistent mode under standard testing conditions, such as a single topic with one producer and one consumer handling 1-2 KB messages on dual-CPU systems (as of early 2000s ). In persistent mode, drops significantly to around 2,000 messages per second for durable queues on comparable older , reflecting the overhead of disk I/O for message durability. ActiveMQ Artemis demonstrates substantially higher performance than Classic, with potential throughput measured in the millions of messages per second in optimized configurations. For example, non-persistent throughput can reach up to 86,000 messages per second in single-node queue tests with small payloads, while persistent scenarios achieve around 75,000 messages per second in multi-topic setups (as of documentation for version 2.34.0 and later). For small payloads, end-to-end latency remains below 1 ms in optimized low-throughput scenarios, with 50th percentile latencies around 0.13 ms. Artemis exhibits better scaling in multi-node clusters compared to Classic due to its non-blocking architecture. In latency-sensitive operations with low throughput, Artemis can outperform alternatives like RabbitMQ.
AspectActiveMQ Classic (v5.18)ActiveMQ Artemis (2.3x+, as of 2023 docs)
Non-Persistent Throughput~22,000 msgs/sec (1-2 KB, dual-CPU )Up to 86,000 msgs/sec (small payloads, single node)
Persistent Throughput~2,000 msgs/sec (durable , older hardware)Up to 75,000 msgs/sec (multi-topic, )
Latency (small payloads)5-10 ms<1 ms (50th percentile ~0.13 ms)
Multi-Node ScalingLinear up to limited nodesImproved over Classic (non-blocking)
HA OverheadVaries by configurationVaries by configuration (shared storage or replication)

Security Considerations

Common Vulnerabilities and Mitigations

One of the most significant vulnerabilities affecting Apache ActiveMQ is CVE-2023-46604, a critical remote code execution (RCE) flaw in the Java OpenWire protocol marshaller caused by untrusted deserialization of data. This issue impacts ActiveMQ Classic versions 5.18.0 through 5.18.2, 5.17.0 through 5.17.5, 5.16.0 through 5.16.6, and earlier releases before 5.15.16, allowing remote attackers with network access to execute arbitrary code on the broker without authentication. The vulnerability has been actively exploited in the wild since its disclosure in October 2023, including campaigns deploying ransomware such as LockBit on compromised systems. Apache addressed this in patches released for affected versions: 5.18.3, 5.17.6, 5.16.7, 5.15.16, and corresponding updates for older branches. A more recent critical issue is CVE-2025-29953, a deserialization vulnerability in the Apache ActiveMQ NMS OpenWire Client (a .NET client library) before version 2.1.1, enabling remote attackers to execute arbitrary code when connecting to untrusted servers. This affects applications using the client for connections, potentially compromising the client system. Mitigation requires upgrading to NMS OpenWire Client 2.1.1 or later. In addition, CVE-2025-27533 is a denial-of-service (DoS) vulnerability in ActiveMQ Classic due to unchecked buffer lengths leading to excessive memory allocation during OpenWire unmarshalling. It impacts versions 5.16.x before 5.16.8, 5.17.x before 5.17.7, 5.18.x before 5.18.7, and 6.x before 6.1.6. Attackers can remotely deplete process memory, causing crashes. Patches are available in 5.16.8, 5.17.7, 5.18.7, and 6.1.6; users should upgrade to the latest ActiveMQ Classic 6.2.0 (released November 2025) for comprehensive fixes. CVE-2024-32114 affects ActiveMQ Classic 6.x before 6.1.2, where the default configuration lacks authentication for the Jolokia JMX REST API and Message REST API, allowing unauthorized access to broker management and message operations. This extends risks from default credential exposure. Upgrade to 6.1.2 or later, or configure authentication in conf/jetty.xml. Older ActiveMQ deployments often suffer from default credential exposure in the web administration console, where the preset username and password are both "admin," enabling unauthorized access to management functions if unchanged during setup. This configuration weakness has been documented in security audits of exposed ActiveMQ instances, potentially leading to full broker compromise. Misconfigurations in network connectors, such as insufficient access controls on transport endpoints, can also result in denial-of-service (DoS) attacks; for instance, CVE-2014-3576 allows remote unauthenticated shutdown of the broker via crafted commands over the network. Similarly, in , CVE-2022-23913 enables DoS through resource exhaustion in the broker's handling of certain protocol interactions, affecting versions before 2.27.0. CVE-2025-27427 in Artemis (versions 2.0.0 through 2.39.0) allows users with queue creation permissions to alter address routing types without proper authorization, potentially enabling unauthorized message routing; fixed in 2.40.0. To mitigate these threats, immediate upgrades to patched versions are crucial, such as (November 2025) or later for recent issues including and , and (November 2025) or higher for , , and others. Enabling robust authentication is essential, using mechanisms like for simple authentication or for advanced authorization to block default credential exploitation and unauthorized network access. Implementing on all transport connectors, including and network bridges, prevents interception and ensures secure communication. For , versions 2.43.0 and later include enhancements to proxy and acceptor configurations that address related network exposure risks, such as support for secure client identification across proxies. Ongoing auditing plays a key role in vulnerability management; tools like OWASP ZAP can scan for exposed endpoints, default credentials, and misconfigured connectors to identify DoS vectors. Administrators should regularly monitor the official Apache ActiveMQ security advisories for CVE updates and apply patches promptly to maintain broker integrity.

Best Practices for Secure Deployment

To ensure the integrity and confidentiality of messaging systems in production environments, Apache ActiveMQ deployments should incorporate layered security measures that address authentication, encryption, and observability. These practices mitigate risks such as unauthorized access and data exposure, drawing from established configuration guidelines in the broker's documentation. Access Controls
Role-based authorization is essential for restricting operations on queues and topics to authenticated users with specific permissions. In Apache ActiveMQ Artemis, this is achieved through the <security-setting> elements in broker.xml, where roles like admin or europe-users are assigned to actions such as sending or consuming messages; for example, <permission type="send" roles="admin, europe-users"/> limits send access accordingly. Similarly, in ActiveMQ Classic, JAAS modules like PropertiesLoginModule enable user-group mappings via login.config, defining users with groups for granular policy enforcement.
IP whitelisting further secures network endpoints by limiting connections to trusted sources. For acceptors in Artemis, bind to specific interfaces like tcp://127.0.0.1:61616?protocols=CORE to restrict access to localhost, or use firewall rules at the OS level for broader whitelisting. In Classic, configure transport connectors in activemq.xml with host bindings, such as <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>, and combine with network-level controls to enforce IP restrictions.
Disabling unused protocols reduces the attack surface by eliminating unnecessary listeners. Limit acceptor configurations to required protocols, e.g., protocols=AMQP,CORE in Artemis, and remove or comment out extraneous connectors in broker.xml or activemq.xml for both versions.
Encryption
SSL/TLS must be enabled for all transport connectors to protect message content and authenticate endpoints. In , configure keystores in broker.xml under <acceptor> elements, such as <acceptor name="amqp">tcp://[0.0.0.0](/page/0.0.0.0):5671?protocols=AMQP;sslEnabled=true;keyStorePath=keystore.jks;keyStorePassword=securepass</acceptor>, ensuring mutual TLS where clients present certificates. supports similar setup via <sslContext> in activemq.xml, with <transportConnector> URIs like ssl://[0.0.0.0](/page/0.0.0.0):61617?needClientAuth=true.
Key management involves using secure stores like JKS or PKCS12 to handle certificates and private keys. Generate keystores with tools like keytool, e.g., keytool -genkeypair -alias broker -keyalg [RSA](/page/RSA) -keystore broker.jks, and reference them in configurations while masking passwords in etc/artemis.profile or credentials.properties to prevent exposure in logs or configs. Rotate keys periodically and store them in hardware modules (HSMs) for high- environments.
Monitoring
Audit logging provides a record of security-relevant events, such as authentication attempts and message operations. In ActiveMQ Classic, enable it by setting the system property -Dorg.apache.activemq.audit=true in startup options, directing output to ${ACTIVEMQ_HOME}/data/audit.log via log4j.properties; this logs details like usernames, IPs, and method calls. For Artemis, configure logging.properties with levels for org.apache.activemq.artemis.audit and enable populate-validated-user=true on addresses to include user metadata in audit entries.
Integration with Security Information and Event Management (SIEM) tools enhances threat detection by forwarding logs for correlation and alerting. Export audit logs in standard formats (e.g., JSON or Syslog) to SIEM platforms like Splunk or ELK Stack, using agents to parse entries for anomalies such as failed logins.
Secure management interfaces prevent unauthorized administrative access. Use HTTPS for Jolokia, the JMX-HTTP bridge, by configuring the web server in bootstrap.xml or via a reverse proxy; in Artemis, edit etc/jolokia-access.xml to enforce <strict-checking/> and CORS restrictions, accessing the console at https://localhost:8443/console with role-based credentials.
Compliance
To align with standards like GDPR, implement to anonymize in transit and storage. Use custom interceptors in to scan and mask sensitive fields before persistence, configured via <interceptors> in broker.xml, ensuring only necessary data is retained for ing. In , similar can be applied through transformers or plugins during production.
Hardening against injection attacks in selectors involves validating inputs at the application level and restricting selector complexity via plugins. Configure MessageAuthorizationPolicy in to and block malformed selectors, while in , leverage address settings to limit selector usage and integrate with input sanitization in client code.

Ecosystem and Support

Commercial Offerings

Red Hat AMQ Broker represents a prominent commercial offering derived from Apache ActiveMQ Artemis, delivering enterprise enhancements such as certified container images for Red Hat OpenShift, advanced high availability through master-slave clustering and OpenShift-native failover mechanisms, and round-the-clock support services. This distribution maintains close alignment with upstream ActiveMQ releases, with version 7.13 made available in May 2025, incorporating the latest performance optimizations and security fixes. Amazon MQ offers a fully managed Apache ActiveMQ service on AWS, emphasizing via multi-AZ deployments, durable message storage backed by , and seamless integration with other AWS components like CloudWatch for monitoring. It supports core ActiveMQ protocols including , AMQP, and , while providing automated scaling, patching, and 99.9% uptime service level agreements to reduce operational overhead. ActiveMQ can be integrated into WebSphere environments using providers and resource adapters, enabling messaging in Java EE applications. This setup can support secure, scalable deployments in hybrid cloud scenarios. The open-source Apache ActiveMQ core operates under the permissive 2.0, enabling free use and modification, while commercial variants introduce proprietary add-ons such as specialized monitoring tools, enhanced security modules, and guaranteed service level agreements for production reliability. In , deployments of commercial ActiveMQ offerings like AMQ have enabled institutions to modernize messaging systems, resulting in 40% faster message processing, 50% higher throughput, and full compliance with regulatory standards through features like TLS encryption and clusters. The Apache ActiveMQ community operates under the Apache Software Foundation's open-source model, fostering collaboration through dedicated mailing lists and issue tracking systems. The primary mailing lists include the "users" list for discussions on , and application development, and the "dev" list for codebase-related topics among developers. To subscribe, users send a blank email to the respective subscribe , such as [email protected]. Issues, bugs, and feature requests are managed via the Apache instance at issues.apache.org/jira/projects/AMQ, where the community reports and tracks enhancements. The project also participates in ApacheCon, the foundation's annual series, where ActiveMQ developers and users share updates, present on integrations, and collaborate on future directions, as seen in sessions at events like ApacheCon and . ActiveMQ integrates seamlessly with several related Apache projects to extend its messaging capabilities. , a routing and mediation framework, embeds directly into the ActiveMQ broker, enabling such as message transformation and bridging to other protocols. For hybrid streaming scenarios, connectors like the Confluent Kafka Connect ActiveMQ Source and Sink facilitate data flow between ActiveMQ queues/topics and Kafka topics, supporting scenarios where ActiveMQ handles JMS-based queuing alongside Kafka's event streaming. Additionally, ActiveMQ's native AMQP 1.0 support allows interoperability with Apache Qpid, an AMQP-focused messaging project, using clients like Qpid JMS to connect brokers for cross-protocol messaging without custom adapters. Community-driven extensions enhance ActiveMQ's observability and maintainability. A notable plugin is the ActiveMQ Prometheus Exporter, available on GitHub, which scrapes broker metrics via Jolokia or JMX and exposes them in Prometheus format for monitoring tools like Grafana. Forks and maintainer tools include ActiveMQ Artemis, a high-performance reimplementation that evolved from community efforts to address scalability needs, now maintained as a subproject with its own Git repository and JIRA. These extensions are typically shared via GitHub mirrors of the official Apache repository. Documentation and resources support the community's engagement and adoption. The official ActiveMQ documentation portal provides comprehensive guides on setup, configuration, and advanced features, updated regularly by contributors. features an active "activemq" tag with thousands of questions and answers, reflecting ongoing user support and troubleshooting discussions. Migration guides, such as those for upgrading from ActiveMQ Classic to or integrating with newer protocols, are detailed in the official resources to ease transitions.

References

  1. [1]
    ActiveMQ - The Apache Software Foundation
    Apache ActiveMQ® is the most popular open source, multi-protocol, Java-based message broker. It supports industry standard protocols so users get the ...Getting Started Guide · Download ActiveMQ Classic · Classic · Artemis
  2. [2]
    ActiveMQ Classic - The Apache Software Foundation
    Apache ActiveMQ Classic is a popular and powerful open source messaging and Integration Patterns server. It supports many Cross Language Clients and Protocols.Download ActiveMQ · Getting Started Guide · Documentation · Message Groups
  3. [3]
    ActiveMQ Artemis - The Apache Software Foundation
    High-performance Messaging for Highly Scalable Microservices. Microservices are often implemented with HTTP using a blocking request-response pattern.Download · Documentation · Broker Connections · Artemis Console
  4. [4]
    [XML] https://repo1.maven.org/maven2/activemq/activemq-core/3.2.4 ...
    ... activemq.codehaus.org</address> </configuration> </notifier> </notifiers> </ciManagement> <inceptionYear>2004</inceptionYear> <mailingLists> <mailingList> ...
  5. [5]
    New Eclipse IDE Eases Open Source SOA -- ADTmag
    LogicBlaze was founded in 2004 by members of the Apache ActiveMQ project, which is a messaging platform that is compliant with the JMS 1.1 specification. In ...
  6. [6]
    ActiveMQ Incubation Status
    The Apache ActiveMQ 4.0 final has successfully been released. For more information about the release, see: [WWW] http://incubator.apache.org/activemq/activemq- ...
  7. [7]
    OpenWire - ActiveMQ - The Apache Software Foundation
    OpenWire is a cross-language wire protocol for native ActiveMQ access, using code generation and marshaling for language-specific commands.Missing: 2006 | Show results with:2006
  8. [8]
  9. [9]
    KahaDB - ActiveMQ - The Apache Software Foundation
    KahaDB is a file-based, local persistence database optimized for fast persistence, and is the default storage mechanism for ActiveMQ Classic 5.4.Missing: 2008 | Show results with:2008
  10. [10]
    ActiveMQ Classic 5.0.0 Release - The Apache Software Foundation
    ActiveMQ Classic 5.0.0 Release. This is an older release. To get the current release, please see the download page.
  11. [11]
    Apache ActiveMQ Committee
    By Date Founded ... Arthur Naseef, Brian McCallister, Domenico Francesco Bruscino, Bruce Snyder, Christian Posta, Hiram R. Chirino, Clebert Suconic, Christopher L ...Missing: origins 2003-2004
  12. [12]
    Part I. About Messaging and JBoss EAP 7 - Red Hat Documentation
    The HornetQ codebase was donated to the Apache ActiveMQ project, and the HornetQ community joined that project to enhance the donated codebase and create a next ...
  13. [13]
    Versions - ActiveMQ
    Broker observability has improved with the new ability to export metrics for executor services (aka thread pools). The PROXY Protocol is now supported!2.43.0 · 2.33.0 · 2.32.0 · 2.29.0
  14. [14]
    Key Differences · ActiveMQ Artemis Documentation
    Artemis uses Netty for IO, an append-only message store, pages messages on the producer side, and uses routing for messaging concepts, unlike ActiveMQ.
  15. [15]
    Exploring ActiveMQ Artemis | OpenLogic
    May 25, 2023 · In this blog, we discuss the history of the ActiveMQ project, the differences between ActiveMQ vs. Artemis, and considerations for teams who want to use ...
  16. [16]
    Central Repository: org/apache/activemq/artemis-amqp-protocol/1.0.0
    org/apache/activemq/artemis-amqp-protocol/1.0.0 ../ artemis-amqp-protocol-1.0.0-javadoc.jar 2015-05-21 14:41 146618 artemis-amqp-protocol-1.0.0-javadoc.jar ...
  17. [17]
    Apache ActiveMQ Artemis | endoflife.date
    Nov 1, 2025 · Apache ActiveMQ Artemis ; 2.43, 3 weeks and 5 days ago. (13 Oct 2025). Ended 1 week and 3 days ago. (29 Oct 2025). 2.43.0. (13 Oct 2025) ; 2.42, 3 ...
  18. [18]
    Announcing Apache ActiveMQ Artemis Support - Savoir Technologies
    Jan 17, 2019 · Based on Red Hat's HornetQ, it was donated to the Apache ActiveMQ project in 2014 and has been community contributed and developed for 3+ ...Missing: history | Show results with:history
  19. [19]
    Apache ActiveMQ Artemis Migration Guide
    The migration guide outlines how users can migrate an existing ActiveMQ 5 broker installation to ActiveMQ Artemis.
  20. [20]
    News - ActiveMQ - The Apache Software Foundation
    ActiveMQ Classic 6.1.5 Release Jan 13th, 2025 Classic 6.1.5 is a maintanance release for ActiveMQ Classic, on the 6.1.x series.Missing: history | Show results with:history
  21. [21]
    Download ActiveMQ Classic - The Apache Software Foundation
    Download ActiveMQ Classic. These are the current ActiveMQ Classic releases. For prior releases, please see the past releases page.
  22. [22]
    Apache ActiveMQ Classic - GitHub
    Apache ActiveMQ is a high performance Apache 2.0 licensed Message Broker. ActiveMQ supports several API and protocols: Jakarta Messaging 3.1.0, JMS 2.0 and ...Releases · Activity · Pull requests 57 · ActionsMissing: 2004 | Show results with:2004
  23. [23]
    Apache ActiveMQ Classic | endoflife.date
    Oct 27, 2025 · Apache ActiveMQ Classic ; 5.16, 5 years ago. (25 Jun 2020). Ended 2 years and 7 months ago. (18 Mar 2023) ; 5.15, 8 years ago. (27 Jun 2017).<|control11|><|separator|>
  24. [24]
    Download ActiveMQ Artemis - The Apache Software Foundation
    ActiveMQ Artemis 2.44. 0 (Nov 3rd, 2025)​​ The source release for ActiveMQ Artemis Native integration layer can be found on its own download page. The broker ...
  25. [25]
    ActiveMQ Artemis 2.43.0 Release Notes
    New Features · ARTEMIS-5609 - Add support for (add/remove/update) of acceptors via config reload · ARTEMIS-5625 - Support AMQP address federation links using ...
  26. [26]
    Artemis' Roadmap to ActiveMQ Next
    The goal of this page is to identify the outstanding issues that must be addressed by Artemis in order to achieve feature parity with ActiveMQ Classic.
  27. [27]
    Board Meeting Minutes - ActiveMQ - Apache Whimsy
    20 Jul 2022 [Bruce Snyder / Rich] ## Description: Apache ActiveMQ is a popular and powerful open source message-oriented middleware.Missing: 2003-2004 | Show results with:2003-2004
  28. [28]
    ActiveMQ architecture and key metrics - Datadog
    Dec 4, 2018 · Both ActiveMQ Classic and Artemis use memory differently for non-persistent messages than they do for persistent messages. Each non-persistent ...
  29. [29]
    Configuring Transports - ActiveMQ - The Apache Software Foundation
    ActiveMQ Classic has support for automatic wire protocol detection over TCP, SSL, NIO, and NIO SSL. OpenWire, STOMP, AMQP, and MQTT are supported.Missing: architecture service
  30. [30]
    Virtual Destinations - ActiveMQ - The Apache Software Foundation
    Composite Destinations allow for one-to-many relationships on individual destinations; the main use case is for composite queues. For example when a message is ...Missing: routing demand- based
  31. [31]
    Composite Destinations - ActiveMQ
    Composite destinations in ActiveMQ allow a single virtual JMS destination to represent multiple JMS destinations, like sending to 12 queues in one operation.Missing: routing demand- based forwarding
  32. [32]
    Persistence - ActiveMQ - The Apache Software Foundation
    ActiveMQ persistence options include KahaDB, LevelDB, JDBC with a high-performance journal, and a replicated LevelDB store. KahaDB is recommended for ...Missing: 2008 | Show results with:2008
  33. [33]
    JDBC Support - ActiveMQ - The Apache Software Foundation
    We support a range of SQL databases for message persistence such as as well as a number of generic JDBC providers.
  34. [34]
    Networks of Brokers - ActiveMQ - The Apache Software Foundation
    ActiveMQ Classic supports networks of brokers which allows us to support distributed queues and topics across a network of brokers.
  35. [35]
    Consumer Dispatch Async - ActiveMQ
    From ActiveMQ Classic v4: the choice of a broker performing synchronous or asynchronous dispatch to a consumer has become more configurable. It is now ...Missing: threading | Show results with:threading
  36. [36]
    Redelivery Policy - ActiveMQ - The Apache Software Foundation
    You can configure the RedeliveryPolicy on your ActiveMQConnectionFactory or ActiveMQConnection to customize exactly how you want the redelivery to work.Missing: threading synchronous dispatch
  37. [37]
    Dispatch Policies - ActiveMQ - The Apache Software Foundation
    ActiveMQ Classic is designed for high performance and high throughput messaging where there are lots of messages that need to be dispatched to consumers as ...Missing: threading synchronous redelivery<|control11|><|separator|>
  38. [38]
    Core Architecture
    ### Summary of Apache ActiveMQ Artemis Core Architecture
  39. [39]
    Address Model - ActiveMQ
    Apache ActiveMQ Artemis supports the ability to filter messages using Filter Expressions. Filters can be applied in two places - on a queue and on a consumer.
  40. [40]
    Persistence - ActiveMQ
    Apache ActiveMQ Artemis ships with two persistence options. The file journal which is highly optimized for the messaging use case and gives great performance.
  41. [41]
    Core Bridges - ActiveMQ
    Core bridges are for linking an Apache ActiveMQ Artemis node with another Apache ActiveMQ Artemis node and do not use the JMS API.Missing: federation | Show results with:federation
  42. [42]
    Diverting and Splitting Message Flows
    ### Summary of Divert Configurations in ActiveMQ Artemis
  43. [43]
    Configuring the Transport - ActiveMQ
    In this chapter we'll describe the concepts required for understanding Apache ActiveMQ Artemis transports and where and how they're configured.Missing: Classic architecture
  44. [44]
    Intercepting Operations
    ### Summary of Intercepting Operations and Interceptor Chains in ActiveMQ Artemis
  45. [45]
    Protocols - ActiveMQ - The Apache Software Foundation
    Apache ActiveMQ Classic is a message broker which supports multiple wire level protocols for maximum interoperability. ... WSIF · WS Notification · XMPP · Apache, ...
  46. [46]
    Protocols and Interoperability - ActiveMQ
    ActiveMQ Classic defines its own wire protocol: OpenWire. In order to support ActiveMQ Classic clients, Apache ActiveMQ Artemis supports OpenWire. Any ...
  47. [47]
    ActiveMQ Classic Jakarta Messaging 3.1 & JMS 2.0 Support
    ActiveMQ Classic 5.x & 6.x support for Jakarta Messaging 3.1 & JMS 2.0 is in progress. This work commenced in late 2019 via AMQ-7309.
  48. [48]
    Using JMS or Jakarta Messaging - ActiveMQ
    In this section we'll go through the main steps in configuring the server for JMS and creating a simple JMS program.A simple ordering system · JNDI · Directly instantiating JMS...
  49. [49]
    Stomp - ActiveMQ - The Apache Software Foundation
    ActiveMQ Classic supports the Stomp protocol and the Stomp - JMS mapping. This makes it easy to write a client in pure Ruby, Perl, Python or PHP for working ...
  50. [50]
    How can I monitor ActiveMQ Classic
    ActiveMQ Classic comes bundled with Jolokia which provides a RESTful interface to ActiveMQ Classic's JMX capabilities. An open source third party tool that ...
  51. [51]
    Management - ActiveMQ
    Apache ActiveMQ Artemis has an extensive management API that allows a user to modify a server configuration, create new resources (eg addresses and queues), ...2.1. Configuring Jmx · Jmx Authorisation In... · 2.1. 2. Jmx Authorization In...Missing: community | Show results with:community<|separator|>
  52. [52]
    Paging - ActiveMQ
    Apache ActiveMQ Artemis will start paging messages to disk, when the size of all messages in memory for an address exceeds a configured maximum size.Missing: persistence | Show results with:persistence
  53. [53]
    Performance Tuning - ActiveMQ
    Apache ActiveMQ Artemis can run in low memory by using paging (described in Paging) but if it can run with all queues in RAM this will improve performance.
  54. [54]
    Shared File System Master Slave - ActiveMQ
    If you have a SAN or shared file system it can be used to provide high availability such that if a broker is killed, another broker can take over immediately.Missing: backup strategies
  55. [55]
    High Availability and Failover - ActiveMQ
    We define high availability (HA) as the ability for the system to continue functioning after failure of one or more of the servers.2. Ha Policies · 2.2. Replication · 2.2. 2. Replication...
  56. [56]
    ActiveMQ Classic Clustering - The Apache Software Foundation
    To avoid this, ActiveMQ Classic supports a Networks of Brokers which provides store and forward to move messages from brokers with producers to brokers with ...
  57. [57]
    ActiveMQ
    ### Summary of Master-Slave High Availability in ActiveMQ Classic
  58. [58]
    Clusters - ActiveMQ
    Apache ActiveMQ Artemis cluster connections can be configured to always blindly load balance messages in a round robin fashion irrespective of whether there ...Missing: weighted dispatching
  59. [59]
    Architectural messaging solutions with Apache ActiveMQ Artemis
    Jan 10, 2020 · Scalability is relatively easier to achieve with Artemis. Primarily, there are two approaches to scaling the message broker. Active-active ...
  60. [60]
    Getting Started with ActiveMQ Classic
    Introduction. This document describes how to install and configure ActiveMQ Classic 5.x for both Unix and Windows' platforms.
  61. [61]
    Using the Server - ActiveMQ
    This chapter will familiarise you with how to use the Apache ActiveMQ Artemis server. We'll show where it is, how to start and stop it, and we'll describe ...Creating a Broker Instance · Starting and Stopping a Broker... · Configuration Files
  62. [62]
    How do I embed a Broker inside a Connection - ActiveMQ
    There are various ways to embed a broker in ActiveMQ Classic depending on if you are using Java, Spring, XBean or using the ActiveMQConnectionFactory.Missing: architecture | Show results with:architecture
  63. [63]
    Docker - ActiveMQ
    One of the simplest ways to get started with ActiveMQ Artemis is by using one of our Docker images. 1. Official Images. Official Docker images are available on ...Missing: Kubernetes cloud
  64. [64]
    ArtemisCloud.io - ActiveMQ Artemis on Kubernetes
    ArtemisCloud.io is a collection of container images that provide a way to deploy the Apache ActiveMQ Artemis Broker on Kubernetes.Missing: guide Docker
  65. [65]
    Amazon MQ - Apache ActiveMQ and RabbitMQ Message Service
    Amazon MQ is a managed message broker service for Apache ActiveMQ and RabbitMQ that simplifies setup and operation of open-source message brokers on AWS.Pricing · Features · Amazon MQ FAQs · ResourcesMissing: Azure | Show results with:Azure
  66. [66]
  67. [67]
    Xml Configuration - ActiveMQ - The Apache Software Foundation
    We support an XML deployment descriptor for configuring the ActiveMQ Classic Message Broker. There are many things which can be configured.Missing: scenarios | Show results with:scenarios
  68. [68]
    Configuration Reference
    ### Summary of `broker.xml` Configuration for Memory, Threads, and Connectors in Apache ActiveMQ Artemis
  69. [69]
    jasonrbriggs/stomp.py - GitHub
    “stomp.py” is a Python client library for accessing messaging servers (such as ActiveMQ or RabbitMQ) using the STOMP protocol (versions 1.0, 1.1 and 1.2).Missing: AMQP | Show results with:AMQP
  70. [70]
    Examples - ActiveMQ
    With Application-Layer failover, it's up to the application to register a JMS ExceptionListener with Apache ActiveMQ Artemis which will be called by Apache ...
  71. [71]
    JMeter Performance Tests - ActiveMQ
    You can use JMeter to test the performance of your ActiveMQ Classic Server. Please refer to the JMeter site for detailed instructions on using this software.
  72. [72]
    Performance Tools - ActiveMQ
    Artemis provides some built-in performance test tools based on the JMS 2 API to help users (and developers) to stress test a configured Artemis broker instance ...
  73. [73]
    ActiveMQ Classic Performance Module Users Manual
    This Maven 2 plugin allows you to run performance tests easily using the Maven command line or run tests automatically in Continuum.
  74. [74]
    Benchmark Tests - ActiveMQ - The Apache Software Foundation
    There are a number of third-party JMS performance test tools that can be used to measure the performance of various features of brokers and compare them.Missing: methodologies | Show results with:methodologies
  75. [75]
    Performance Testing - ActiveMQ - The Apache Software Foundation
    We have a few tools to help you evaluate performance. ActiveMQ Classic Performance Module Users Manual · Load Testing with Camel · JMeter Performance Tests ...Missing: benchmarking | Show results with:benchmarking
  76. [76]
    Performance Tuning - ActiveMQ - The Apache Software Foundation
    You can improve throughput by running ActiveMQ Classic with larger pre-fetch sizes. Pre-fetch sizes are determined by the ActiveMQPrefetchPolicy bean, which is ...Missing: PerfTest tool<|control11|><|separator|>
  77. [77]
    (PDF) Benchmarking Message Queues - ResearchGate
    Jun 8, 2023 · In this paper, we compared and evaluated the performance of four popular message queues: Redis, ActiveMQ Artemis, RabbitMQ, and Apache Kafka.
  78. [78]
    ActiveMQ Artemis performance degradation compared to Classic
    Oct 5, 2021 · Generally speaking, ActiveMQ Artemis is notably faster than ActiveMQ "Classic" due to the significant architectural differences between them.
  79. [79]
    AMQP vs MQTT: Messaging protocols compared - CloudAMQP
    Jun 20, 2023 · Even though AMQP also supports this messaging pattern, the MQTT protocol does it more efficiently, because it is optimized for that use case.Missing: ActiveMQ | Show results with:ActiveMQ
  80. [80]
    ActiveMQ vs. Kafka: A comparison of differences and use cases - Quix
    Sep 27, 2023 · ActiveMQ Artemis is better equipped to provide high performance compared to ActiveMQ Classic. This is because Artemis, unlike ActiveMQ Classic, ...
  81. [81]
  82. [82]
    CVE-2023-46604 - ActiveMQ
    Affected versions: - Apache ActiveMQ 5.18.0 before 5.18.3 - Apache ActiveMQ 5.17.0 before 5.17.6 - Apache ActiveMQ 5.16.0 before 5.16.7 - Apache ActiveMQ ...
  83. [83]
    Suspected Exploitation of Apache ActiveMQ CVE-2023-46604
    Nov 1, 2023 · Tom Elkins, John Fenninger, Evan McCann, Matthew Smith, and Micah Young contributed attacker behavior insights to this blog.
  84. [84]
    Apache ActiveMQ Ransomware Attack - FortiGuard Labs
    Ransomware attackers are targeting servers running outdated and vulnerable versions of Apache ActiveMQ by exploiting a recently fixed vulnerability (CVE-2023- ...Missing: common | Show results with:common
  85. [85]
    Apache ActiveMQ Web Console Default Credentials | Tenable®
    Feb 16, 2015 · ActiveMQ Web Console, an administrative interface for Apache ActiveMQ, is protected using default credentials. Note that no authentication ...
  86. [86]
    Apache ActiveMQ default administrative credentials - Vulnerabilities
    The default administration user name and password for the Apache ActiveMQ Administration Console is admin and admin respectively. You should change these ...
  87. [87]
    Security Advisories - ActiveMQ Classic
    CVE-2024-32114 - Jolokia and REST API were not secured with default configuration ; CVE-2023-46604 - Unbounded deserialization causes ActiveMQ Classic to be ...Missing: common | Show results with:common
  88. [88]
    Security Advisories - ActiveMQ Artemis
    CVE-2022-35278 - HTML Injection in ActiveMQ Artemis Web Console; CVE-2022-23913 - Apache ActiveMQ Artemis DoS; CVE-2021-26117 - ActiveMQ: LDAP-Authentication ...
  89. [89]
  90. [90]
    Authentication & Authorization - ActiveMQ
    Apache ActiveMQ Artemis contains a flexible role-based security model for applying security to queues, based on their addresses.Role based security for... · Security Setting Plugin · User credentials
  91. [91]
    Security - ActiveMQ - The Apache Software Foundation
    ActiveMQ Classic 4.x and greater provides pluggable security through various different providers. The most common providers are Authentication.
  92. [92]
  93. [93]
    Audit Logging - ActiveMQ - The Apache Software Foundation
    A default location of the audit log can be configured in ${ACTIVEMQ_HOME}/conf/log4j.properties. Apache, ActiveMQ, Apache ActiveMQ, the Apache logo, and the ...
  94. [94]
    Logging - ActiveMQ
    1. Configuring a Specific Level for a Logger · 2. Configuration Reload · 3. Logging in a client application · 4. Configuring Broker Audit Logging · 5. More on ...Configuring a Specific Level... · Logging in a client application
  95. [95]
    Management Console - ActiveMQ
    The management console communicates with the broker via HTTP(S). The broker uses the Jolokia JMX-HTTP bridge to convert the contents of these HTTP requests ...
  96. [96]
    Red Hat AMQ
    Multilingual client support​​ Red Hat AMQ supports connectivity from client programs written in multiple languages, including Java, Javascript, C, C++, Python, ...
  97. [97]
    Chapter 1. Introduction to AMQ Broker on OpenShift Container ...
    High availability (HA) achieved by configuring master and slave pairs is not supported. Instead, AMQ Broker uses the HA capabilities provided in OpenShift ...
  98. [98]
    Chapter 21. High Availability and Failover | Using AMQ Broker | 7.0
    AMQ Broker 7.0 allows brokers to be linked together as master and slave, where each master broker can have one or more slave brokers.
  99. [99]
    Release Notes for AMQ Broker - 7.13 - Red Hat Documentation
    Oct 28, 2025 · These release notes contain the latest information about new features, enhancements, fixes, and issues contained in the AMQ Broker 7.13 release.
  100. [100]
    Amazon MQ Features | Managed Message Broker Service
    High Availability, Throughput, and Message Durability. Amazon MQ for ActiveMQ provides durability-optimized brokers backed by Amazon Elastic File System (Amazon ...
  101. [101]
    Amazon MQ for ActiveMQ brokers
    Key features include CloudWatch monitoring, private endpoint access restriction, quorum queues for handling poison messages, and cross-Region data replication ...
  102. [102]
    What is the license - ActiveMQ - The Apache Software Foundation
    ... Apache 2.0 licence (a liberal BSD style license which is very commercial friendly). Apache, ActiveMQ, Apache ActiveMQ, the Apache logo, and the Apache ...Missing: add- ons
  103. [103]
    Support - ActiveMQ - The Apache Software Foundation
    OpenLogic by Perforce has a team of ActiveMQ experts ready to help you, providing 24/7 support for troubleshooting issues and outages, consulting on ...
  104. [104]
    Enhancing Financial Messaging Infrastructure With Red Hat AMQ
    Apr 16, 2024 · This case study examines the seamless incorporation of cutting-edge technologies into Messaging queue.
  105. [105]
    Mailing Lists - ActiveMQ - The Apache Software Foundation
    There are two mailing lists: Users for users/developers, and Dev for developers. To subscribe, send a blank email to the appropriate address.Missing: JIRA | Show results with:JIRA
  106. [106]
    ActiveMQ Classic - ASF JIRA - Issues
    ActiveMQ Classic is the tried and trusted open-source message broker from Apache ActiveMQ. It supports industry standard protocols like AMQP, STOMP, and MQTT.Missing: contributions | Show results with:contributions
  107. [107]
  108. [108]
    Broker Camel Component - ActiveMQ
    Embedding Apache Camel inside the ActiveMQ Classic broker provides great flexibility for extending the message broker with the integration power of Camel.
  109. [109]
    ActiveMQ Source Connector for Confluent Platform
    The Kafka Connect ActiveMQ Source connector is used to read messages from an ActiveMQ cluster and write them to an Apache Kafka® topic.Missing: integration | Show results with:integration
  110. [110]
    Home - Apache Qpid™
    Apache Qpid makes messaging tools that speak AMQP, an open internet protocol for sending and receiving messages, supporting many languages and platforms.Documentation · Apache Qpid · Broker-J · Qpid Messaging API
  111. [111]
    A Prometheus exporter for ActiveMQ via jolokia API. - GitHub
    The ActiveMQ exporter is a Prometheus exporter for ActiveMQ. It exposes metrics about the broker, queues and topics.
  112. [112]
    Newest 'activemq-classic' Questions - Stack Overflow
    Jul 31, 2024 · We are trying to get an ActiveMQ Classic broker to forward its messages to an ActiveMQ Artemis broker. The same queues exist on both sides.