Skip to main content

Advisory Support in ActiveMQ Classic 3

Site > Old Links > Previous Versions > Advisory Support in ActiveMQ Classic 3

For users of Apache ActiveMQ Classic 4.0 or later please see Advisory Message. In previous 3.x versions the following is supported:-

The destination string constants are available in ActiveMQDestination

ActiveMQDestination.CONSUMER_ADVISORY_PREFIX
ActiveMQDestination.PRODUCER_ADVISORY_PREFIX
ActiveMQDestination.CONNECTION_ADVISORY_PREFIX
ActiveMQDestination.TEMP_DESTINATION_ADVISORY_PREFIX

A subscription to each of the destination returns an ObjectMessage with a specific object: ConsumerInfo, ProducerInfo,ConnectionInfo, TempDestinationAdvisoryEvent.

For example:

... 
String advisoryName = ActiveMQDestination.PRODUCER_ADVISORY_PREFIX + destination.getPhysicalName();
Destination advisoryDestination = ActiveMQDestination.createDestination(destination.getDestinationType(), advisoryName);
MessageConsumer consumer = session.createConsumer(advisoryDestination);
consumer.setMessageListener(this);
....

public void onMessage(Message msg) {
if (msg instanceof ObjectMessage) {
try {
ProducerInfo info = (ProducerInfo)((ObjectMessage)msg).getObject();
} catch (JMSException e) {
log.error("Failed to process message: " + msg);
}
}
}