Hi Docs, I have running Active MQ 5.8 and have setup VirtualDestinations (2 queues). One of the queue is slow and it is not discarding messages. Could some one please suggest how should I enable discarding messages for that queue ?
please find below my code snippet: broker.setDeleteAllMessagesOnStartup(true); broker.setUseJmx(true); broker.setAdvisorySupport(false); PolicyMap policyMap = new PolicyMap(); List<PolicyEntry> entries = new ArrayList<PolicyEntry>(); PolicyEntry topicPolicy = new PolicyEntry(); topicPolicy.setTopic(">"); topicPolicy.setTopicPrefetch(100); // topicPolicy.setProducerFlowControl(false); entries.add(topicPolicy); PolicyEntry queuePolicy = new PolicyEntry(); // queuePolicy.setProducerFlowControl(false); queuePolicy.setQueue(">"); queuePolicy.setMemoryLimit(100); ConstantPendingMessageLimitStrategy constantPendingMessageLimitStrategy = new ConstantPendingMessageLimitStrategy(); constantPendingMessageLimitStrategy.setLimit(1); queuePolicy.setPendingMessageLimitStrategy(constantPendingMessageLimitStrategy); OldestMessageEvictionStrategy oldestMessageEvictionStrategy = new OldestMessageEvictionStrategy(); oldestMessageEvictionStrategy.setEvictExpiredMessagesHighWatermark(1); queuePolicy.setMessageEvictionStrategy(oldestMessageEvictionStrategy); /* the period (in ms) of checks for message expiry on queued messages, value of 0 disables */ queuePolicy.setExpireMessagesPeriod(1000); /* Set the PrefetchSize for all topics. You can override this value while creating consumer. */ // policy.setTopicPrefetch(10); queuePolicy.setQueuePrefetch(10); entries.add(queuePolicy); policyMap.setPolicyEntries(entries); broker.setDestinationPolicy(policyMap); /* All undeliverable messages will be sent to ActiveMQ.DLQ which has fixed size. If it reaches fixed size, * producers will be throttled. Drop dead letter queue. Enable it case by case basis. */ DiscardingDLQBrokerPlugin dlqBrokerPlugin = new DiscardingDLQBrokerPlugin(); dlqBrokerPlugin.setDropAll(true); dlqBrokerPlugin.setDropTemporaryTopics(true); dlqBrokerPlugin.setDropTemporaryQueues(true); BrokerPlugin[] plugins = { dlqBrokerPlugin }; broker.setPlugins(plugins); VirtualTopic virtualTopic = new VirtualTopic(); // the new config that enables selectors on the intercepter virtualTopic.setSelectorAware(true); VirtualDestinationInterceptor interceptor = new VirtualDestinationInterceptor(); interceptor.setVirtualDestinations(new VirtualDestination[] { virtualTopic }); broker.setDestinationInterceptors(new DestinationInterceptor[] { interceptor }); broker.start(); -- View this message in context: http://activemq.2283324.n4.nabble.com/Discard-messages-for-Slow-consumers-on-Queue-tp4664858.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.