@Override public void afterCommit() throws Exception { Destination dest = transactionBroker.addDestination(transactionBroker.context, destination, false); if (messageSend) { dest.clearPendingMessages(opCount); dest.getDestinationStatistics().getEnqueues().add(opCount); dest.getDestinationStatistics().getMessages().add(opCount); LOG.debug("cleared pending from afterCommit: {}", destination); } else { dest.getDestinationStatistics().getDequeues().add(opCount); } } }
blockedTime = new TimeStatisticImpl("blockedTime","amount of time messages are blocked for flow control"); messageSize = new SizeStatisticImpl("messageSize","Size of messages passing through the destination"); addStatistic("enqueues", enqueues); addStatistic("dispatched", dispatched); addStatistic("dequeues", dequeues); addStatistic("inflight", inflight); addStatistic("expired", expired); addStatistic("consumers", consumers); addStatistic("producers", producers); addStatistic("messages", messages); addStatistic("messagesCached", messagesCached); addStatistic("processTime", processTime); addStatistic("blockedSends",blockedSends); addStatistic("blockedTime",blockedTime); addStatistic("messageSize",messageSize);
@Override public void removeSubscription(ConnectionContext context, Subscription sub, long lastDeliveredSequenceId) throws Exception{ destinationStatistics.getConsumers().decrement(); this.lastActiveTime=0l; }
private void dropMessage(QueueMessageReference reference) { //use dropIfLive so we only process the statistics at most one time if (reference.dropIfLive()) { getDestinationStatistics().getDequeues().increment(); getDestinationStatistics().getMessages().decrement(); pagedInMessagesLock.writeLock().lock(); try { pagedInMessages.remove(reference); } finally { pagedInMessagesLock.writeLock().unlock(); } } }
@Override public boolean isActive() { boolean isActive = destinationStatistics.getConsumers().getCount() > 0 || destinationStatistics.getProducers().getCount() > 0; if (isActive && isGcWithNetworkConsumers() && destinationStatistics.getConsumers().getCount() > 0) { isActive = hasRegularConsumers(getConsumers()); } return isActive; }
final void messageSent(final ConnectionContext context, final Message msg) throws Exception { pendingSends.decrementAndGet(); destinationStatistics.getEnqueues().increment(); destinationStatistics.getMessages().increment(); destinationStatistics.getMessageSize().addSize(msg.getSize()); messageDelivered(context, msg); consumersLock.readLock().lock(); try { if (consumers.isEmpty()) { onMessageWithNoConsumers(context, msg); } }finally { consumersLock.readLock().unlock(); } LOG.debug("{} Message {} sent to {}", new Object[]{ broker.getBrokerName(), msg.getMessageId(), this.destination }); wakeup(); }
statsMessage.setString("brokerId", regionBroker.getBrokerId().toString()); statsMessage.setString("destinationName", dest.getActiveMQDestination().toString()); statsMessage.setLong("size", stats.getMessages().getCount()); statsMessage.setLong("enqueueCount", stats.getEnqueues().getCount()); statsMessage.setLong("dequeueCount", stats.getDequeues().getCount()); statsMessage.setLong("dispatchCount", stats.getDispatched().getCount()); statsMessage.setLong("expiredCount", stats.getExpired().getCount()); statsMessage.setLong("inflightCount", stats.getInflight().getCount()); statsMessage.setLong("messagesCached", stats.getMessagesCached().getCount()); statsMessage.setLong("averageMessageSize", (long) stats.getMessageSize().getAverageSize()); statsMessage.setInt("memoryPercentUsage", dest.getMemoryUsage().getPercentUsage()); statsMessage.setLong("memoryUsage", dest.getMemoryUsage().getUsage()); statsMessage.setLong("memoryLimit", dest.getMemoryUsage().getLimit()); statsMessage.setDouble("averageEnqueueTime", stats.getProcessTime().getAverageTime()); statsMessage.setDouble("maxEnqueueTime", stats.getProcessTime().getMaxTime()); statsMessage.setDouble("minEnqueueTime", stats.getProcessTime().getMinTime()); statsMessage.setLong("consumerCount", stats.getConsumers().getCount()); statsMessage.setLong("producerCount", stats.getProducers().getCount()); statsMessage.setJMSCorrelationID(messageSend.getCorrelationId()); sendStats(producerExchange.getConnectionContext(), statsMessage, replyTo); statsMessage.setString("brokerName", regionBroker.getBrokerName()); statsMessage.setString("brokerId", regionBroker.getBrokerId().toString()); statsMessage.setLong("size", stats.getMessages().getCount()); statsMessage.setLong("enqueueCount", stats.getEnqueues().getCount()); statsMessage.setLong("dequeueCount", stats.getDequeues().getCount()); statsMessage.setLong("dispatchCount", stats.getDispatched().getCount()); statsMessage.setLong("expiredCount", stats.getExpired().getCount());
private void incrementStatsOnAck(final Destination destination, final MessageAck ack, final int count) { getSubscriptionStatistics().getDequeues().add(count); destination.getDestinationStatistics().getDequeues().add(count); destination.getDestinationStatistics().getInflight().subtract(count); if (info.isNetworkSubscription()) { destination.getDestinationStatistics().getForwards().add(count); } if (ack.isExpiredAck()) { destination.getDestinationStatistics().getExpired().add(count); } }
@Override public void onSuccess() { Destination regionDestination = (Destination) node.getRegionDestination(); regionDestination.getDestinationStatistics().getDispatched().increment(); regionDestination.getDestinationStatistics().getInflight().increment(); node.decrementReferenceCount(); }
public long getPendingMessageCount() { return this.destinationStatistics.getMessages().getCount(); }
@Override public void addSubscription(ConnectionContext context, Subscription sub) throws Exception { LOG.debug("{} add sub: {}, dequeues: {}, dispatched: {}, inflight: {}", new Object[]{ getActiveMQDestination().getQualifiedName(), sub, getDestinationStatistics().getDequeues().getCount(), getDestinationStatistics().getDispatched().getCount(), getDestinationStatistics().getInflight().getCount() });
toPageIn, force, destinationStatistics.getInflight().getCount(), pagedInMessages.size(), pagedInPendingSize, destinationStatistics.getEnqueues().getCount(), destinationStatistics.getDequeues().getCount(), getMemoryUsage().getUsage(), maxPageSize
/** * @return the number of messages cached in memory by this destination */ public long getMessagesCached() { return destination.getDestinationStatistics().getMessagesCached().getCount(); }
/** * @return the maximum time it takes to store a message on this destination (ms) */ public long getMaxEnqueueTime() { return destination.getDestinationStatistics().getProcessTime().getMaxTime(); }
/** * @return the number of messages enqueued by this destination */ public long getEnqueueCount() { return destination.getDestinationStatistics().getEnqueues().getCount(); }
/** * @return the number of messages expired by this destination */ public long getExpiredCount() { return destination.getDestinationStatistics().getExpired().getCount(); }
/** * @return the number of messages dequeued (dispatched and removed) by this destination */ public long getDequeueCount() { return destination.getDestinationStatistics().getDequeues().getCount(); }
@Override protected void acknowledge(ConnectionContext context, MessageAck ack, MessageReference node) throws IOException { this.setTimeOfLastMessageAck(System.currentTimeMillis()); Destination regionDestination = (Destination) node.getRegionDestination(); regionDestination.acknowledge(context, this, ack, node); redeliveredMessages.remove(node.getMessageId()); node.decrementReferenceCount(); ((Destination)node.getRegionDestination()).getDestinationStatistics().getDequeues().increment(); if (info.isNetworkSubscription()) { ((Destination)node.getRegionDestination()).getDestinationStatistics().getForwards().add(ack.getMessageCount()); } }
destinationStatistics.getEnqueues().increment(); destinationStatistics.getMessageSize().addSize(message.getSize()); MessageEvaluationContext msgContext = null;
/** * @return the number of messages inflight (dispatched by not acknowledged) by this destination */ public long getInFlightCount() { return destination.getDestinationStatistics().getInflight().getCount(); }