Hi everybody, I use AdvisoryMessage to listener subscriber join or leave. If my system is having two subscribers. After that I run AdvisoryTest and I receive the result. Result: A consumer subscribed to a topic or queue: ConsumerInfo {commandId = 4, consumerId = ID:QuangDe-PC-51000-1397993623150-1:1:1:1, destination = topic://TOPIC2 } A consumer subscribed to a topic or queue: ConsumerInfo {commandId = 4, consumerId = ID:QuangDe-PC-54005-1398005456464-1:1:1:1, destination = topic://TOPIC1}
Code: /public class AdvisoryTest { static MessageListener listener = new MessageListener() { @Override public void onMessage(Message message) { System.out.println("message: " + message); if (message instanceof ActiveMQMessage) { ActiveMQMessage activeMessage = (ActiveMQMessage) message; Object command = activeMessage.getDataStructure(); if (command instanceof ConsumerInfo) { System.out.println("A consumer subscribed to a topic or queue: " + command ); } else if (command instanceof RemoveInfo) { RemoveInfo removeInfo = (RemoveInfo) command; if (removeInfo.isConsumerRemove()) { System.out.println("A consumer unsubscribed from a topic or queue"+command); } else { System.out.println("RemoveInfo, a connection was closed: " + command); } } else if (command instanceof ConnectionInfo) { System.out.println("ConnectionInfo, a new connection was made: " + command); } else { System.out.println("Unknown command: " + command); } } } }; public static void main(String[] args) { try { // ActiveMQConnectionFactory connectionFactory = new // ActiveMQConnectionFactory( // "user", "password", ActiveMQConnection.DEFAULT_BROKER_URL); ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); connection.start(); Destination consumerTopicAdvisoryDest = session.createTopic("ActiveMQ.Advisory.Consumer.Topic.>"); MessageConsumer consumerAdvisory = session.createConsumer(consumerTopicAdvisoryDest); consumerAdvisory.setMessageListener(listener); } catch (Exception ex) { ex.printStackTrace(); } } }/ But when I change the destination to Topic advisoryAll = session.createTopic("ActiveMQ.Advisory.>"). I am understanding this topic include all of advisory messages. But I receive the result not include "consumer subscribed". ActiveMQMessage {commandId = 0, messageId = ID:QuangDe-PC-49713-1397991439530-1:1:0:0:1, producerId = ID:QuangDe-PC-49713-1397991439530-1:1:0:0, destination = topic://ActiveMQ.Advisory.MasterBroker} Although, topic "ActiveMQ.Advisory.>" still receive all event happend after it start. I don't know why. Please help me if you know root cause Thanks everybody! -- View this message in context: http://activemq.2283324.n4.nabble.com/Advisory-Message-not-correct-tp4680421.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.