Как просмотреть сообщение, которое было потреблено потребителем в ActiveMQ JMS с помощью консоли JMX -jConsole?Проверка ActiveMQ с помощью консоли JMX -jConsole
0
A
ответ
1
, чтобы сделать это, Вы можете просматривать темы ActiveMQ.Advisory.MessageConsumed.Topic.YourTopicName
или для очереди с помощью JConsole или VisualVM, это возможно Экспертного сообщение http://activemq.apache.org/advisory-message.html и вам необходимо включить это в брокерской конфигурации путем добавления этого:
<destinationPolicy>
<policyMap>
<policyEntries>
<!-- http://activemq.apache.org/advisory-message.html -->
<policyEntry topic=">" advisoryForConsumed="true" />
<policyEntry queue=">" advisoryForConsumed="true" />
</policyEntries>
</policyMap>
</destinationPolicy>
код для просмотра консультативных сообщений.
Destination advisoryDestination = AdvisorySupport.getMessageDeliveredAdvisoryTopic(destination);
Destination advisoryDestination = AdvisorySupport.getMessageDiscardedAdvisoryTopic(destination);
Destination advisoryDestination = AdvisorySupport.getMessageConsumedAdvisoryTopic(destination);
MessageConsumer consumer = session.createConsumer(advisoryDestination);
consumer.setMessageListener(this);
public void onMessage(Message msg){
String messageId = msg.getJMSMessageID();
String orignalMessageId = msg.getStringProperty(org.apache.activemq.advisory.AdvisorySupport.MSG_PROPERTY_MESSAGE_ID);
if (msg instanceof ActiveMQMessage){
try {
ActiveMQMessage aMsg = (ActiveMQMessage)msg;
ConsumerInfo consumerInfo = (ConsumerInfo) aMsg.getDataStructure();
} catch (JMSException e) {
log.error("Failed to process message: " + msg);
}
}
}
hi hassen, не могли бы вы сообщить мне, что это поле, которое покажет сообщение, которое было потреблено потребителем и идентификатором сообщения? И какое сообщение, которое не было потреблено потребителем – srinathshil
, заключается в том, что 'ActiveMQ.Advisory.MessageConsumed' является темой, и если нет подписки, сообщения будут потеряны, решение, если вам нужно просмотреть их jconsole, - это дубликаты сообщений от этой темы до пользовательской очереди с помощью перехватчиков верблюдов или AMQ, или вы используете какой-то код для их просмотра. для просмотра отброшенных сообщений вы можете подписаться на «ActiveMQ.Advisory.MessageDiscarded.Topic». Я обновляю ответ с помощью некоторого кода. –
Можем ли мы просматривать данные очереди i.e полезную нагрузку, отправленную потребителю производителем на 1 сервере и полезную нагрузку, потребляемую потребителем на другом сервере? – srinathshil