protected Subscription createSubscription(ConnectionContext context, ConsumerInfo info) throws JMSException { if (info.isBrowser()) { return new QueueBrowserSubscription(broker,usageManager,context, info); } else { return new QueueSubscription(broker,usageManager,context, info); } }
/** * Since we are a browser we don't really remove the message from the queue. */ @Override protected void acknowledge(ConnectionContext context, final MessageAck ack, final MessageReference n) throws IOException { if (info.isNetworkSubscription()) { super.acknowledge(context, ack, n); } }
@Override public synchronized String toString() { return "QueueSubscription:" + " consumer=" + info.getConsumerId() + ", destinations=" + destinations.size() + ", dispatched=" + dispatched.size() + ", delivered=" + this.prefetchExtension + ", pending=" + getPendingQueueSize() + ", prefetch=" + getPrefetchSize() + ", prefetchExtension=" + prefetchExtension.get(); }
public void configure(Broker broker, SystemUsage memoryManager, QueueSubscription sub) { configurePrefetch(sub); sub.setCursorMemoryHighWaterMark(getCursorMemoryHighWaterMark()); sub.setUsePrefetchExtension(isUsePrefetchExtension()); sub.setMaxProducersToAudit(getMaxProducersToAudit()); }
public void configure(Broker broker, SystemUsage memoryManager, QueueSubscription sub) { int prefetch = sub.getPrefetchSize(); //override prefetch size if not set by the Consumer if (prefetch == ActiveMQPrefetchPolicy.DEFAULT_QUEUE_PREFETCH){ sub.setPrefetchSize(getQueuePrefetch()); } sub.setCursorMemoryHighWaterMark(getCursorMemoryHighWaterMark()); sub.setUsePrefetchExtension(isUsePrefetchExtension()); }
@Override protected boolean canDispatch(MessageReference n) throws IOException { boolean result = true; QueueMessageReference node = (QueueMessageReference)n; if (node.isAcked() || node.isDropped()) { result = false; } result = result && (isBrowser() || node.lock(this)); return result; }
/** */ @Override public void destroy() { setSlowConsumer(false); }
@Override public boolean matches(MessageReference node, MessageEvaluationContext context) throws IOException { return !browseDone && super.matches(node, context); }
public void configurePrefetch(Subscription subscription) { final int currentPrefetch = subscription.getConsumerInfo().getPrefetchSize(); if (subscription instanceof QueueBrowserSubscription) { if (currentPrefetch == ActiveMQPrefetchPolicy.DEFAULT_QUEUE_BROWSER_PREFETCH) { ((QueueBrowserSubscription) subscription).setPrefetchSize(getQueueBrowserPrefetch()); } } else if (subscription instanceof QueueSubscription) { if (currentPrefetch == ActiveMQPrefetchPolicy.DEFAULT_QUEUE_PREFETCH) { ((QueueSubscription) subscription).setPrefetchSize(getQueuePrefetch()); } } else if (subscription instanceof DurableTopicSubscription) { if (currentPrefetch == ActiveMQPrefetchPolicy.DEFAULT_DURABLE_TOPIC_PREFETCH || subscription.getConsumerInfo().getPrefetchSize() == ActiveMQPrefetchPolicy.DEFAULT_OPTIMIZE_DURABLE_TOPIC_PREFETCH) { ((DurableTopicSubscription)subscription).setPrefetchSize(getDurableTopicPrefetch()); } } else if (subscription instanceof TopicSubscription) { if (currentPrefetch == ActiveMQPrefetchPolicy.DEFAULT_TOPIC_PREFETCH) { ((TopicSubscription) subscription).setPrefetchSize(getTopicPrefetch()); } } if (currentPrefetch != 0 && subscription.getPrefetchSize() == 0) { // tell the sub so that it can issue a pull request subscription.updateConsumerPrefetch(0); } }
public synchronized String toString() { return "QueueSubscription:" + " consumer=" + info.getConsumerId() + ", destinations=" + destinations.size() + ", dispatched=" + dispatched.size() + ", delivered=" + this.prefetchExtension + ", pending=" + getPendingQueueSize(); }
public void configure(Broker broker, SystemUsage memoryManager, QueueSubscription sub) { configurePrefetch(sub); sub.setCursorMemoryHighWaterMark(getCursorMemoryHighWaterMark()); sub.setUsePrefetchExtension(isUsePrefetchExtension()); sub.setMaxProducersToAudit(getMaxProducersToAudit()); }
@Override protected boolean canDispatch(MessageReference n) throws IOException { boolean result = true; QueueMessageReference node = (QueueMessageReference)n; if (node.isAcked() || node.isDropped()) { result = false; } result = result && (isBrowser() || node.lock(this)); return result; }
/** */ @Override public void destroy() { setSlowConsumer(false); }
@Override public boolean matches(MessageReference node, MessageEvaluationContext context) throws IOException { return !browseDone && super.matches(node, context); }
public void configurePrefetch(Subscription subscription) { final int currentPrefetch = subscription.getConsumerInfo().getPrefetchSize(); if (subscription instanceof QueueBrowserSubscription) { if (currentPrefetch == ActiveMQPrefetchPolicy.DEFAULT_QUEUE_BROWSER_PREFETCH) { ((QueueBrowserSubscription) subscription).setPrefetchSize(getQueueBrowserPrefetch()); } } else if (subscription instanceof QueueSubscription) { if (currentPrefetch == ActiveMQPrefetchPolicy.DEFAULT_QUEUE_PREFETCH) { ((QueueSubscription) subscription).setPrefetchSize(getQueuePrefetch()); } } else if (subscription instanceof DurableTopicSubscription) { if (currentPrefetch == ActiveMQPrefetchPolicy.DEFAULT_DURABLE_TOPIC_PREFETCH || subscription.getConsumerInfo().getPrefetchSize() == ActiveMQPrefetchPolicy.DEFAULT_OPTIMIZE_DURABLE_TOPIC_PREFETCH) { ((DurableTopicSubscription)subscription).setPrefetchSize(getDurableTopicPrefetch()); } } else if (subscription instanceof TopicSubscription) { if (currentPrefetch == ActiveMQPrefetchPolicy.DEFAULT_TOPIC_PREFETCH) { ((TopicSubscription) subscription).setPrefetchSize(getTopicPrefetch()); } } if (currentPrefetch != 0 && subscription.getPrefetchSize() == 0) { // tell the sub so that it can issue a pull request subscription.updateConsumerPrefetch(0); } }
public void configure(Broker broker, SystemUsage memoryManager, QueueSubscription sub) { configurePrefetch(sub); sub.setCursorMemoryHighWaterMark(getCursorMemoryHighWaterMark()); sub.setUsePrefetchExtension(isUsePrefetchExtension()); sub.setMaxProducersToAudit(getMaxProducersToAudit()); }
@Override public synchronized String toString() { return "QueueSubscription:" + " consumer=" + info.getConsumerId() + ", destinations=" + destinations.size() + ", dispatched=" + dispatched.size() + ", delivered=" + this.prefetchExtension + ", pending=" + getPendingQueueSize() + ", prefetch=" + getPrefetchSize() + ", prefetchExtension=" + prefetchExtension.get(); }
protected Subscription createSubscription(ConnectionContext context, ConsumerInfo info) throws JMSException { ActiveMQDestination destination = info.getDestination(); PolicyEntry entry = null; if (destination != null && broker.getDestinationPolicy() != null) { entry = broker.getDestinationPolicy().getEntryFor(destination); } if (info.isBrowser()) { QueueBrowserSubscription sub = new QueueBrowserSubscription(broker,usageManager, context, info); if (entry != null) { entry.configure(broker, usageManager, sub); } return sub; } else { QueueSubscription sub = new QueueSubscription(broker, usageManager,context, info); if (entry != null) { entry.configure(broker, usageManager, sub); } return sub; } }
protected boolean canDispatch(MessageReference n) throws IOException { boolean result = true; QueueMessageReference node = (QueueMessageReference)n; if (node.isAcked() || node.isDropped()) { result = false; } result = result && (isBrowser() || node.lock(this)); return result; }
/** */ @Override public void destroy() { setSlowConsumer(false); }