使用 JMX 控制台 -jConsole 的 ActiveMQ 监控
ActiveMQ montoring using a JMX console -jConsole
如何使用 JMX 控制台 -jConsole 查看 ActiveMQ JMS 中消费者消费的消息?
为此,您可以使用 jconsole 或 visualVM 浏览主题 ActiveMQ.Advisory.MessageConsumed.Topic.YourTopicName
或队列 ActiveMQ.Advisory.MessageConsumed.Queue.YourQueueName
,这可以通过 Advisory Message 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);
}
}
}
如何使用 JMX 控制台 -jConsole 查看 ActiveMQ JMS 中消费者消费的消息?
ActiveMQ.Advisory.MessageConsumed.Topic.YourTopicName
或队列 ActiveMQ.Advisory.MessageConsumed.Queue.YourQueueName
,这可以通过 Advisory Message 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);
}
}
}