У меня есть очередь ошибок в ActiveMQ, которая заполняется обработчиком ошибок Apache Camel onException. В этой очереди может быть тысячи сообщений.
Вместо использования веб-консоли ActiveMQ я создаю собственного веб-администратора для интеграции нескольких других статистических данных, а также из других компонентов. Таким образом, я хотел включить статистику из ActiveMQ.
Версия ActiveMQ: 5.14.3
Я посмотрел на Jolokia JMX API и его операции. Например, у меня есть следующая полезная нагрузка для конечной точки Jolokia API брокера:
{
"type": "exec",
"mbean": "org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=test.errors",
"operation": "browse(java.lang.String)",
"arguments": ["EXCEPTION_TYPE LIKE '%jdbc%'"]
}
Поле заголовка EXCEPTION_TYPE
уже заполнено через Apache Camel Route. На данный момент в этой очереди более 10 тысяч сообщений. Я сделал POST-запрос к моей конечной точке API брокера с полезной нагрузкой, как показано выше. Хотя у меня было более 10 тыс. Сообщений, в результате этого запроса было получено всего 400 сообщений (из-за ограничения максимального размера страницы, жестко запрограммированного в исходном коде ). Это означает, что я не смогу получать более 400 сообщений одновременно через Jolokia. Я также попробовал метод browseMessages (). Похоже, он делает то же самое, в общем.
- Можно ли просмотреть эти сообщения (скажем, если их много, может быть около 10k +)?
- Или их можно разбить на страницы? Я не мог видеть соответствующий метод операции для этого.
Я попытался выяснить, сделал ли Хавтио что-то особенное в получении всех сообщений. Но результат тот же (максимум 400 сообщений).
ActiveMQ веб-консоль получает все сообщения. Вероятно, это может быть связано с тем, что он тесно связан с проектом ActiveMQ.
Я не ограничен только JMX / Jolokia. Если эту статистику можно получить с помощью какого-либо API, это в равной степени хорошо.
Любые входные данные будут великолепны!