/** */ @Override public int getPrefetchSize() { return subscription != null ? subscription.getPrefetchSize() : 0; }
protected boolean isOptimizeStorage(){ boolean result = false; if (isDoOptimzeMessageStorage()){ consumersLock.readLock().lock(); try{ if (consumers.isEmpty()==false){ result = true; for (Subscription s : consumers) { if (s.getPrefetchSize()==0){ result = false; break; } if (s.isSlowConsumer()){ result = false; break; } if (s.getInFlightUsage() > getOptimizeMessageStoreInFlightLimit()){ result = false; break; } } } } finally { consumersLock.readLock().unlock(); } } return result; } }
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); } }
/** */ @Override public int getPrefetchSize() { return subscription != null ? subscription.getPrefetchSize() : 0; }
/** */ @Override public int getPrefetchSize() { return subscription != null ? subscription.getPrefetchSize() : 0; }
/** */ @Override public int getPrefetchSize() { return subscription != null ? subscription.getPrefetchSize() : 0; }
/** */ public int getPrefetchSize() { return subscription != null ? subscription.getPrefetchSize() : 0; }
private int getConsumerMessageCountBeforeFull() throws Exception { int total = 0; boolean zeroPrefetch = false; consumersLock.readLock().lock(); try{ for (Subscription s : consumers) { zeroPrefetch |= s.getPrefetchSize() == 0; int countBeforeFull = s.countBeforeFull(); total += countBeforeFull; } }finally { consumersLock.readLock().unlock(); } if (total == 0 && zeroPrefetch) { total = 1; } return total; }
protected boolean isOptimizeStorage(){ boolean result = false; if (isDoOptimzeMessageStorage()){ consumersLock.readLock().lock(); try{ if (consumers.isEmpty()==false){ result = true; for (Subscription s : consumers) { if (s.getPrefetchSize()==0){ result = false; break; } if (s.isSlowConsumer()){ result = false; break; } if (s.getInFlightUsage() > getOptimizeMessageStoreInFlightLimit()){ result = false; break; } } } } finally { consumersLock.readLock().unlock(); } } return result; } }
protected boolean isOptimizeStorage(){ boolean result = false; if (isDoOptimzeMessageStorage()){ consumersLock.readLock().lock(); try{ if (consumers.isEmpty()==false){ result = true; for (Subscription s : consumers) { if (s.getPrefetchSize()==0){ result = false; break; } if (s.isSlowConsumer()){ result = false; break; } if (s.getInFlightUsage() > getOptimizeMessageStoreInFlightLimit()){ result = false; break; } } } } finally { consumersLock.readLock().unlock(); } } return result; } }
protected boolean isOptimizeStorage(){ boolean result = false; if (isDoOptimzeMessageStorage()){ consumersLock.readLock().lock(); try{ if (consumers.isEmpty()==false){ result = true; for (Subscription s : consumers) { if (s.getPrefetchSize()==0){ result = false; break; } if (s.isSlowConsumer()){ result = false; break; } if (s.getInFlightUsage() > getOptimizeMessageStoreInFlightLimit()){ result = false; break; } } } } finally { consumersLock.readLock().unlock(); } } return result; } }
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); } }