10adca5479
The `ManagementService` is used by the broker to register and unregister components for management as well as send notifications. When the broker is busy dealing with new sessions and auto-creating queues, addresses, etc. there is a lot of contention. To reduce synchronization and improve the service overall this commit does the following: - Remove `synchronized` from most methods. In most cases it's completely unnecessary because the methods are already using a thread-safe data-structure (e.g. `ConcurrentHashMap`) or more specific synchronization is already in place (e.g. on `mbeanServer`). - Adds new & clarifies existing logging. - Synchronizes `start` & `stop` methods and adds gates via `started`. - Simplifies the `sendNotification` method by synchronizing once rather than twice and performing legitimacy checks sooner. - Removing an unnecessary overload of the `registereQueue` method. To be clear, there are no tests included with this commit as there should be no semantic changes. Existing tests should be sufficient to identify any regressions. |
||
---|---|---|
.github | ||
.settings | ||
artemis-bom | ||
artemis-boot | ||
artemis-cdi-client | ||
artemis-cli | ||
artemis-commons | ||
artemis-core-client | ||
artemis-core-client-all | ||
artemis-core-client-osgi | ||
artemis-distribution | ||
artemis-docker | ||
artemis-dto | ||
artemis-features | ||
artemis-hawtio | ||
artemis-image | ||
artemis-jakarta-client | ||
artemis-jakarta-client-all | ||
artemis-jakarta-ra | ||
artemis-jakarta-server | ||
artemis-jakarta-service-extensions | ||
artemis-jdbc-store | ||
artemis-jms-client | ||
artemis-jms-client-all | ||
artemis-jms-client-osgi | ||
artemis-jms-server | ||
artemis-journal | ||
artemis-junit | ||
artemis-lockmanager | ||
artemis-log-annotation-processor | ||
artemis-maven-plugin | ||
artemis-pom | ||
artemis-protocols | ||
artemis-ra | ||
artemis-selector | ||
artemis-server | ||
artemis-server-osgi | ||
artemis-service-extensions | ||
artemis-unit-test-support | ||
artemis-web | ||
artemis-website | ||
docs | ||
etc | ||
scripts | ||
tests | ||
.asf.yaml | ||
.gitignore | ||
.project | ||
LICENSE | ||
NOTICE | ||
README.md | ||
RELEASING.md | ||
artemis_doap.rdf | ||
pom.xml |
README.md
Welcome to Apache ActiveMQ Artemis
ActiveMQ Artemis is the next generation message broker from Apache ActiveMQ.
Getting Started
See the User Manual for an in-depth explanation of all aspects of broker configuration and behavior.
The ActiveMQ Artemis Examples repository contains over 90 examples demonstrating many of the client and broker features.
How to Build, etc.
See the Hacking Guide for details about modifying the code, building the project, running tests, IDE integration, etc.
Migrate from ActiveMQ Classic
See the Migration Guide for information about the architectural and configuration differences between ActiveMQ Classic and ActiveMQ Artemis.
Report an Issue
See our website for details on how to report an bug, request a feature, etc.