Ich versuche Subskriptionsstatistiken für mein Thema von Embedded ActiveMQ über meinen JUnit-Test zu erhalten. Ich bin in der Lage, dieses Thema zu abonnieren, eine Nachricht an dieses Thema senden und bin in der Lage, diese Nachricht in meinem Zuhörer/Abonnenten zu empfangen.Ich kann keine eingebettete ActiveMQ-Statistiknachricht empfangen
Wenn ich jedoch versuche, Statistiken von diesem ActiveMQ zu erhalten, erhalten die Verbraucher Zeitüberschreitung. Und wenn ich das "receiveTimeout" nicht addiere, wartet der Verbraucher unbegrenzt auf die Nachricht. Hier ist mein Code für die Statistik:
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
connectionFactory.setStatsEnabled(true);
Connection connection = connectionFactory.createConnection();
connection.setClientID(format("ActiveMqStatistics-%s", System.nanoTime()));
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue replyTo = session.createTemporaryQueue();
MessageConsumer consumer = session.createConsumer(replyTo);
String queueName = "ActiveMQ.Statistics.Subscription";
Queue testQueue = session.createQueue(queueName);
MessageProducer producer = session.createProducer(testQueue);
Message msg = session.createMessage();
msg.setJMSReplyTo(replyTo);
producer.send(msg);
System.out.println("Statistics request sent. Waiting to receive reply...");
long receiveTimeout = 5000L;
MapMessage reply = (MapMessage) consumer.receive(receiveTimeout);
assertNotNull(reply);
for (Enumeration e = reply.getMapNames();e.hasMoreElements();) {
String name = e.nextElement().toString();
System.out.println(name + "=" + reply.getObject(name));
}
connection.close();
Ich bekomme Assertionsfehler, weil die "Antwort" null ist.
Irgendwelche Ideen?
Haben Sie StatisticBrokerPlugin in Ihrem Broker installiert? –
Tim: Nein, ich verwende den virtuellen eingebetteten activemq, d. H. Die Broker-URL lautet "vm: // localhost? Broker.persistent = false". Basierend auf der Dokumentation (http://activemq.apache.org/statisticsplugin.html) sollte dies unterstützt werden. – Gul