@Override public long countMessages(String filter) throws Exception { return control.countMessages(filter); }
@Override public long countMessages(String filter) throws Exception { return control.countMessages(filter); }
private long countMessagesForSubscription(String clientID, String subscriptionName, String filterStr, ManagementService managementService) throws Exception { SimpleString queueName = ActiveMQDestination.createQueueNameForSubscription(true, clientID, subscriptionName); QueueControl coreQueueControl = (QueueControl) managementService.getResource(ResourceNames.QUEUE + queueName); if (coreQueueControl == null) { throw new IllegalArgumentException("No subscriptions with name " + queueName + " for clientID " + clientID); } String filter = createFilterFromJMSSelector(filterStr); return coreQueueControl.countMessages(filter); }
@Override public void run() { try { while (!stop) { queueControl.countMessages(null); queueControl.listMessagesAsJSON(null); try { Thread.sleep(1000); } catch (InterruptedException e) { //ignore } } } catch (Exception e) { error = e; } }
assertNull(sender.getError()); long count = queueControl.countMessages(null);
@Test public void testCountMessagesWithFilter() throws Exception { SimpleString key = new SimpleString("key"); long matchingValue = RandomUtil.randomLong(); long unmatchingValue = matchingValue + 1; SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, RoutingType.MULTICAST, queue, null, durable); ClientProducer producer = session.createProducer(address); // send on queue ClientMessage matchingMessage = session.createMessage(durable); matchingMessage.putLongProperty(key, matchingValue); ClientMessage unmatchingMessage = session.createMessage(durable); unmatchingMessage.putLongProperty(key, unmatchingValue); producer.send(matchingMessage); producer.send(unmatchingMessage); producer.send(matchingMessage); QueueControl queueControl = createManagementControl(address, queue); Assert.assertEquals(3, getMessageCount(queueControl)); assertMessageMetrics(queueControl, 3, durable); Assert.assertEquals(2, queueControl.countMessages(key + " =" + matchingValue)); Assert.assertEquals(1, queueControl.countMessages(key + " =" + unmatchingValue)); session.deleteQueue(queue); }
assertMessageMetrics(queueControl, 110, durable); Assert.assertEquals(0, queueControl.countMessages("nonExistentProperty like \'%Temp/88\'")); Assert.assertEquals(100, queueControl.countMessages(key + "=\'" + matchingValue + "\'")); Assert.assertEquals(10, queueControl.countMessages(key + " = \'" + nonMatchingValue + "\'"));
Assert.assertEquals(matchingValue, l); long n = queueControl.countMessages(filter); assertEquals(num / 2, n);
String result = queueControl.countMessages(null, key); JsonObject jsonObject = JsonUtil.readJsonObject(result); Assert.assertEquals(34, jsonObject.getInt(valueGroup1));
@Test public void testCountMessagesPropertyWithNullFilter() throws Exception { SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, queue, null, false); ClientProducer producer = session.createProducer(address); for (int i = 0; i < 100; i++) { ClientMessage msg = session.createMessage(false); msg.putStringProperty(RandomUtil.randomString(), RandomUtil.randomString()); producer.send(msg); } QueueControl queueControl = createManagementControl(address, queue); Assert.assertEquals(100, getMessageCount(queueControl)); String result = queueControl.countMessages(null,null); JsonObject jsonObject = JsonUtil.readJsonObject(result); Assert.assertEquals(100, jsonObject.getInt("null")); session.deleteQueue(queue); }