You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@artemis.apache.org by "Václav Haisman (Jira)" <ji...@apache.org> on 2026/04/01 11:00:00 UTC
[jira] [Commented] (ARTEMIS-5893) Optimize ManagementService
[ https://issues.apache.org/jira/browse/ARTEMIS-5893?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18070302#comment-18070302 ]
Václav Haisman commented on ARTEMIS-5893:
-----------------------------------------
I think this had introduced an exception for me when Apache Artemis is used as embedded in Spring Boot app:
{code:java}
Caused by: java.lang.NullPointerException: Cannot invoke "org.apache.activemq.artemis.core.server.management.HawtioSecurityControl.getClass()" because the return value of "org.apache.activemq.artemis.core.server.management.impl.ManagementServiceImpl.getHawtioSecurity()" is null
at org.apache.activemq.artemis.core.server.management.impl.ManagementServiceImpl.getResources(ManagementServiceImpl.java:786)
at com.ca.apm.server.artemis.configuration.ArtemisServerConfiguration.activeMQServerControl(ArtemisServerConfiguration.java:356)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:172)
... 50 common frames omitted {code}
I am assuming the Hawtio stuff is not present or instantiated by the Spring Boot configuraition.
The condition here should probably check if the `getHawtioSecurity()` returns non-null.
> Optimize ManagementService
> --------------------------
>
> Key: ARTEMIS-5893
> URL: https://issues.apache.org/jira/browse/ARTEMIS-5893
> Project: Artemis
> Issue Type: Improvement
> Reporter: Justin Bertram
> Assignee: Justin Bertram
> Priority: Major
> Fix For: 2.53.0
>
>
> Currently {{org.apache.activemq.artemis.core.server.management.impl.ManagementServiceImpl}} has a single instance of a {{java.util.Map}} to manage _every single_ management object. In high-volume use-cases this map might contains millions of entries. This can slow down management operations on particular resources (e.g. addresses or queues) because the broker has to look through the whole map to gather and report on that particular resource.
> Performance could be improved by partitioning each resource type into its own map. This will reduce the overall time needed to gather, filter, etc.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@artemis.apache.org
For additional commands, e-mail: issues-help@artemis.apache.org