You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2014/11/24 18:45:13 UTC

[jira] [Resolved] (AMQ-5450) mKahaDB filtered wildcard doesn't pick up myqueue.DLQ

     [ https://issues.apache.org/jira/browse/AMQ-5450?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully resolved AMQ-5450.
-----------------------------
    Resolution: Fixed

fix in http://git-wip-us.apache.org/repos/asf/activemq/commit/8533a924

> mKahaDB filtered wildcard <filteredKahaDB queue="*.DLQ"> doesn't pick up myqueue.DLQ
> ------------------------------------------------------------------------------------
>
>                 Key: AMQ-5450
>                 URL: https://issues.apache.org/jira/browse/AMQ-5450
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Message Store
>    Affects Versions: 5.10.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>              Labels: messageStore, mkahadb
>             Fix For: 5.11.0
>
>
> the activemq destination map does not support prefix matching on multiple paths but you can provide multiple wildcard matches via a composite destination today using a comma separated list.
> In the main, "a.dlq" will match {code}"*.dlq"{code}, but a.b.dlq needs a {code}"*.*.dlq"{code} - so there needs to be a match to the number of expected paths to the number of wildcards. Having extra matches is not a problem.
> A composite destination like {code}("*.DLQ,*.*.DLQ,*.*.*.DLQ"){code}will give match FOO.DLQ, FOO.BAR.DLQ and FOO.BAR.BAR.DLQ etc.
> There is a problem with the match all destinations mapping, if there is no destination configured then an Any destination (with composite of Queue=">" and Topic=">" is used under the covers, it has a physical name of "0" which is > than the first character of *.DLQ" so it gets picked first in error.
> A workaround is to add your own default mapping for queues and topics {code}
> <mKahaDB directory="${data}/kahadb" >
>  <filteredPersistenceAdapters>
>    <!-- match up to 3 paths that end in .DLQ -->
>    <filteredKahaDB queue="*.*.*.DLQ,*.*.DLQ,*.DLQ">
>     <persistenceAdapter>
>       <kahaDB journalMaxFileLength="5kb"/>
>     </persistenceAdapter>
>   </filteredKahaDB>
>   <!-- match all queues, specify a wildcard dest to avoid the Any under the covers -->
>   <filteredKahaDB queue=">" >
>     <persistenceAdapter>
>       <kahaDB journalMaxFileLength="10kb"/>
>     </persistenceAdapter>
>   </filteredKahaDB>
>   <!-- match all topics, specify a wildcard dest to avoid the Any under the covers -->
>   <filteredKahaDB topic=">" >
>     <persistenceAdapter>
>       <kahaDB journalMaxFileLength="10kb"/>
>     </persistenceAdapter>
>   </filteredKahaDB>
>  </filteredPersistenceAdapters>
> </mKahaDB>
> {code}
> rather than use a filteredKahaDB and not specify a destination, with the default "all" behaviour



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)