Alec Henninger created AMQ-7050:
-----------------------------------

             Summary: Allow alternate persistence mechanism with 
SubQueueSelectorCacheBrokerPlugin
                 Key: AMQ-7050
                 URL: https://issues.apache.org/jira/browse/AMQ-7050
             Project: ActiveMQ
          Issue Type: Improvement
          Components: Broker
    Affects Versions: 5.15.6
            Reporter: Alec Henninger


(Largely copied from my email to dev list)

Background: We're running a multitenant activemq pair using selector aware 
virtual topics extensively but also need truly durable subscriptions. The 
SubQueueSelectorCacheBroker plugin was developed for this purpose as we 
understand, however it persists the selector cache in a File, and we'd like to 
instead use a shared/replicated cache that doesn't depend on a node first 
storing the cached consumer selector locally first. The reason for this is, 
with the current implementation, there is an edge case where if both:

1. A active broker has not yet cached a consumer's selector (e.g. secondary 
broker becomes primary that hasn't yet received connection from said consumer 
and brokers are not sharing networked file system)
2. Producer connects and starts publishing messages before consumer

...then those messages will be lost. In some domains, any message loss is 
really undesirable so we want to do everything we can to prevent that while 
still using selector aware virtual topics. We'd just turn off selectorAware, 
but then we have to deal with message build up for consumers using selectors, 
and we have little control over how/when consumers use selectors.

Hence, refactoring SubQueueSelectorCacheBroker to allow an alternate source of 
persistence enables us to experiment with a fix.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to