activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From xita-de <phamquan...@gmail.com>
Subject Advisory Message not correct?
Date Sun, 20 Apr 2014 15:21:35 GMT
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.

Mime
View raw message