cshannon opened a new pull request, #1423: URL: https://github.com/apache/activemq/pull/1423
This commit fixes multiple problems with handling message expiration on durable topic subscriptions. 1) Memory usage tracking is fixed on expiration by correctly decrementing the counter inside AbstractStoreCursor when calling the remove(message) method, which was previously missed. 2) A new refrence type is used to wrap references in TopicStorePrefetch so that if multiple subscriptions share a reference in their cursors each one can expire the message. Previously only one would expire as the message would be marked as expired and skipped. 3) On client expiration, the references are properly decremented so memory tracking is correct. 4) The expiration thread for Topics has been improved to be much more efficient for KahaDB by only scanning for expired messages if there are durables eligible for expiration. The thread also now checks the index to see if expired messages are associated with the subs still so we don't expire the same sub multiple times. Only messages that need to still be processed are returned which further cuts down memory usage. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For additional commands, e-mail: gitbox-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact