context.getResult().set(control.getScheduledCount()); } else if (CommonAttributes.CONSUMER_COUNT.getName().equals(attributeName)) { context.getResult().set(control.getConsumerCount());
context.getResult().set(control.getScheduledCount()); } else if (CommonAttributes.CONSUMER_COUNT.getName().equals(attributeName)) { context.getResult().set(control.getConsumerCount());
context.getResult().set(control.getMessageCount()); } else if (SCHEDULED_COUNT.getName().equals(attributeName)) { context.getResult().set(control.getScheduledCount()); } else if (CONSUMER_COUNT.getName().equals(attributeName)) { context.getResult().set(control.getConsumerCount());
context.getResult().set(control.getMessageCount()); } else if (SCHEDULED_COUNT.getName().equals(attributeName)) { context.getResult().set(control.getScheduledCount()); } else if (CONSUMER_COUNT.getName().equals(attributeName)) { context.getResult().set(control.getConsumerCount());
@Test public void testGetScheduledCount() throws Exception { long delay = 500; SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, RoutingType.MULTICAST, queue, null, durable); QueueControl queueControl = createManagementControl(address, queue); Assert.assertEquals(0, queueControl.getScheduledCount()); ClientProducer producer = session.createProducer(address); ClientMessage message = session.createMessage(durable); message.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, System.currentTimeMillis() + delay); producer.send(message); long timeout = System.currentTimeMillis() + 5000; while (timeout > System.currentTimeMillis() && queueControl.getScheduledCount() != 1) { Thread.sleep(100); } assertScheduledMetrics(queueControl, 1, durable); assertMessageMetrics(queueControl, 1, durable); consumeMessages(0, session, queue); Thread.sleep(delay * 2); Assert.assertEquals(0, queueControl.getScheduledCount()); consumeMessages(1, session, queue); assertMessageMetrics(queueControl, 0, durable); assertScheduledMetrics(queueControl, 0, durable); session.deleteQueue(queue); }
@Test public void testGetScheduledCountOnRemove() throws Exception { long delay = Integer.MAX_VALUE; SimpleString address = RandomUtil.randomSimpleString(); SimpleString queue = RandomUtil.randomSimpleString(); session.createQueue(address, RoutingType.MULTICAST, queue, null, durable); QueueControl queueControl = createManagementControl(address, queue); Assert.assertEquals(0, queueControl.getScheduledCount()); Field queueMemorySizeField = QueueImpl.class.getDeclaredField("queueMemorySize"); queueMemorySizeField.setAccessible(true); final LocalQueueBinding binding = (LocalQueueBinding) server.getPostOffice().getBinding(queue); Queue q = binding.getQueue(); AtomicInteger queueMemorySize1 = (AtomicInteger) queueMemorySizeField.get(q); assertEquals(0, queueMemorySize1.get()); ClientProducer producer = session.createProducer(address); ClientMessage message = session.createMessage(durable); message.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, System.currentTimeMillis() + delay); producer.send(message); queueControl.removeAllMessages(); Assert.assertEquals(0, queueControl.getMessageCount()); //Verify that original queue has a memory size of 0 assertEquals(0, queueMemorySize1.get()); session.deleteQueue(queue); }
Assert.assertEquals(2, queueControl.getScheduledCount()); while (timeout > System.currentTimeMillis() && queueControl.getScheduledCount() == 1) { Thread.sleep(100);