В настоящее время я переношу приложение Spring Boot 2.x с ActiveMQ 5.x на Artemis, но у меня проблема с Artemis activemq.notifications
и activemq.management
.
В ActiveMQ 5 я использовал тему ActiveMQ.Advisory.Connection
, чтобы узнать, подключены ли в настоящее время клиенты с определенным clientId. При подключении к этой теме я сначала получил всех подключенных в данный момент клиентов, а затем получил информацию с помощью ConnectionInfo
и RemovedInfo
, если клиенты отключились или подключились к сети.
К сожалению, Артемис не поддерживает такое поведение. Прослушивание activemq.notifications
предоставляет информацию только о сеансах, созданных или закрытых во время прослушивания темы.
Итак, теперь мне нужно синхронизировать подключенных клиентов при запуске моего приложения.
Я попытался получить доступ к ActiveMQServerControl.listConnectionIDs()
с помощью API управления JMS, но метод org.apache.activemq.artemis.core.server.management.impl.ManagementServiceImpl.getAttribute()
разрешает доступ только к методам, начинающимся с get
или is
.
Есть ли другой способ получить необходимую информацию (без опроса)?