[
https://issues.apache.org/jira/browse/AMQ-5898?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
James Furness updated AMQ-5898:
-------------------------------
Attachment: ActiveManyCompositeQueuesToOnePhysicalQueueTest.java
Add test case - passes with asserts disabled.
With {{-ea}} fails:
{code}
Caused by: java.lang.Throwable: java.lang.AssertionError: null
at
org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor.intercept(VirtualDestinationInterceptor.java:70)
at
org.apache.activemq.broker.region.CompositeDestinationInterceptor.intercept(CompositeDestinationInterceptor.java:38)
at
org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:139)
at
org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:348)
at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:172)
at
org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:197)
at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:172)
at
org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:172)
at
org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:177)
at
org.apache.activemq.broker.region.AbstractRegion.lookup(AbstractRegion.java:467)
at
org.apache.activemq.broker.region.AbstractRegion.addConsumer(AbstractRegion.java:261)
at
org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:427)
at
org.apache.activemq.broker.jmx.ManagedRegionBroker.addConsumer(ManagedRegionBroker.java:244)
at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:102)
at
org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:104)
at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:102)
at
org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:102)
at
org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:107)
at
org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:663)
at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:348)
at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:334)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:188)
at
org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at
org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:270)
at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214)
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
... 1 more
{code}
> Physical queues forwarded from many virtual destinations no longer supported
> ----------------------------------------------------------------------------
>
> Key: AMQ-5898
> URL: https://issues.apache.org/jira/browse/AMQ-5898
> Project: ActiveMQ
> Issue Type: Bug
> Affects Versions: 5.11.1
> Reporter: James Furness
> Attachments: ActiveManyCompositeQueuesToOnePhysicalQueueTest.java
>
>
> Hi Tim,
> AMQ-5187 breaks some of our message routing where we use virtual queues to
> control mirroring/replication of messages.
> A simple example...
> {code}
> VIRTUAL.PUB.ALL
> -> queue://SUBSCRIBER1
> -> queue://SUBSCRIBER2
> VIRTUAL.PUB.SUBSCRIBER1
> -> queue://SUBSCRIBER1
> {code}
> ...fails [this
> assert|https://github.com/apache/activemq/commit/f55edcfa25de1b55659a7113be60360c531ffa8a#diff-0def63df6ee6c0e4f8adcf00011b2f07R70]
> because there are two composite destinations that route to
> {{queue://SUBSCRIBER1}}. With asserts disabled messages are routed as
> expected.
> We use layers of composite queues to achieve explicit routing of messages to
> either one consumer or all consumers, and (also with static subscriptions) to
> target optimal routes across a mixture of LAN and WAN links.
> Fully appreciate that subscription recovery from virtual topics of a mapped
> queue is a beneficial thing to do, however from our perspective it is also
> useful to retain the behaviour of being able to have a many-to-one mapping
> between composite queues and physical queues.
> Could this validation relaxed, could it be made possible for the new
> behaviour to be disabled or do you have any suggestions as to how else we
> could achieve our use case?
> Thanks,
> James
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)