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 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 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 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, DurableTopicSubscription sub) { String clientId = sub.getSubscriptionKey().getClientId(); String subName = sub.getSubscriptionKey().getSubscriptionName(); int prefetch = sub.getPrefetchSize(); sub.setCursorMemoryHighWaterMark(getCursorMemoryHighWaterMark()); //override prefetch size if not set by the Consumer if (prefetch == ActiveMQPrefetchPolicy.DEFAULT_DURABLE_TOPIC_PREFETCH || prefetch == ActiveMQPrefetchPolicy.DEFAULT_OPTIMIZE_DURABLE_TOPIC_PREFETCH){ sub.setPrefetchSize(getDurableTopicPrefetch()); } if (pendingDurableSubscriberPolicy != null) { PendingMessageCursor cursor = pendingDurableSubscriberPolicy.getSubscriberPendingMessageCursor(broker,clientId, subName,sub.getPrefetchSize(),sub); cursor.setSystemUsage(memoryManager); sub.setPending(cursor); } int auditDepth = getMaxAuditDepth(); if (auditDepth == BaseDestination.MAX_AUDIT_DEPTH && this.isPrioritizedMessages()) { sub.setMaxAuditDepth(auditDepth * 10); } else { sub.setMaxAuditDepth(auditDepth); } sub.setMaxProducersToAudit(getMaxProducersToAudit()); sub.setUsePrefetchExtension(isUsePrefetchExtension()); }