@Override public boolean isActive() { return durableSub.isActive(); }
@Override public void dispatchPending() throws IOException { if (isActive()) { super.dispatchPending(); } }
@Override public boolean isActive() { if (subscription instanceof DurableTopicSubscription) { return ((DurableTopicSubscription)subscription).isActive(); } else { return super.isActive(); } }
private boolean isInActiveDurableSub(Subscription sub) { return (sub.getConsumerInfo().isDurable() && sub instanceof DurableTopicSubscription && !((DurableTopicSubscription) sub).isActive()); }
protected boolean isOptimizeStorage(){ boolean result = false; if (isDoOptimzeMessageStorage() && durableSubscribers.isEmpty()==false){ result = true; for (DurableTopicSubscription s : durableSubscribers.values()) { if (s.isActive()== false){ result = false; break; } if (s.getPrefetchSize()==0){ result = false; break; } if (s.isSlowConsumer()){ result = false; break; } if (s.getInFlightUsage() > getOptimizeMessageStoreInFlightLimit()){ result = false; break; } } } return result; }
public void doCleanup() { long now = System.currentTimeMillis(); for (Map.Entry<SubscriptionKey, DurableTopicSubscription> entry : durableSubscriptions.entrySet()) { DurableTopicSubscription sub = entry.getValue(); if (!sub.isActive()) { long offline = sub.getOfflineTimestamp(); if (offline != -1 && now - offline >= broker.getBrokerService().getOfflineDurableSubscriberTimeout()) { LOG.info("Destroying durable subscriber due to inactivity: {}", sub); try { RemoveSubscriptionInfo info = new RemoveSubscriptionInfo(); info.setClientId(entry.getKey().getClientId()); info.setSubscriptionName(entry.getKey().getSubscriptionName()); ConnectionContext context = new ConnectionContext(); context.setBroker(broker); context.setClientId(entry.getKey().getClientId()); removeSubscription(context, info); } catch (Exception e) { LOG.error("Failed to remove inactive durable subscriber", e); } } } } }
@Override public synchronized String toString() { return "DurableTopicSubscription-" + getSubscriptionKey() + ", id=" + info.getConsumerId() + ", active=" + isActive() + ", destinations=" + durableDestinations.size() + ", total=" + getSubscriptionStatistics().getEnqueues().getCount() + ", pending=" + getPendingQueueSize() + ", dispatched=" + getSubscriptionStatistics().getDispatched().getCount() + ", inflight=" + dispatched.size() + ", prefetchExtension=" + getPrefetchExtension(); }
for (Message message : toExpire) { for (DurableTopicSubscription sub : durableSubscribers.values()) { if (!sub.isActive()) { message.setRegionDestination(this); messageExpired(connectionContext, sub, message);
info.getSubscriptionName()); if (sub.isActive()) { throw new JMSException("Durable consumer is in use"); } else {
super.addSubscription(context, sub); sub.add(context, this); if(dsub.isActive()) { synchronized (consumers) { boolean hasSubscription = false;
if (sub != null) { if (!context.isAllowLinkStealing() && sub.isActive()) { throw new JMSException("Durable consumer is in use for client: " + clientId + " and subscriptionName: " + subscriptionName);
@Override public boolean isActive() { if (subscription instanceof DurableTopicSubscription) { return ((DurableTopicSubscription)subscription).isActive(); } else { return super.isActive(); } }
@Override public boolean isActive() { if (subscription instanceof DurableTopicSubscription) { return ((DurableTopicSubscription)subscription).isActive(); } else { return super.isActive(); } }
@Override public void dispatchPending() throws IOException { if (isActive()) { super.dispatchPending(); } }
@Override public void dispatchPending() throws IOException { if (isActive()) { super.dispatchPending(); } }
@Override public void dispatchPending() throws IOException { if (isActive()) { super.dispatchPending(); } }
@Override public boolean isActive() { if (subscription instanceof DurableTopicSubscription) { return ((DurableTopicSubscription)subscription).isActive(); } else { return super.isActive(); } }
protected void dispatchPending() throws IOException { if (isActive()) { super.dispatchPending(); } }
@Override public synchronized String toString() { return "DurableTopicSubscription-" + getSubscriptionKey() + ", id=" + info.getConsumerId() + ", active=" + isActive() + ", destinations=" + durableDestinations.size() + ", total=" + getSubscriptionStatistics().getEnqueues().getCount() + ", pending=" + getPendingQueueSize() + ", dispatched=" + getSubscriptionStatistics().getDispatched().getCount() + ", inflight=" + dispatched.size() + ", prefetchExtension=" + getPrefetchExtension(); }
@Override public synchronized String toString() { return "DurableTopicSubscription-" + getSubscriptionKey() + ", id=" + info.getConsumerId() + ", active=" + isActive() + ", destinations=" + durableDestinations.size() + ", total=" + getSubscriptionStatistics().getEnqueues().getCount() + ", pending=" + getPendingQueueSize() + ", dispatched=" + getSubscriptionStatistics().getDispatched().getCount() + ", inflight=" + dispatched.size() + ", prefetchExtension=" + getPrefetchExtension(); }