Hi, I noticed that in 5.3.2 the removal of a consumer in a network of brokers sometimes triggers the removal of the network bridged subscription even though there are still some other running consumers. The problem was resolved in 5.4 with revision 949742 to handle AMQ-2754. But looking at the code, this revision seems to undo a fix for a memory leak that has been done earlier: revision 902009 for AMQ-2530. I wonder if with the actual code, we're now back to the situation where conduit bridge "works" but with memory leak.
Rgds, Chris PS: The following patch for 5.3.2 might do the trick, but I guess this needs some verification from someone who knows what this is supposed to do: --- a/activemq-core/src/main/java/org/apache/activemq/network/ConduitBridge.java Mon Oct 04 11:32:53 2010 +0200 +++ b/activemq-core/src/main/java/org/apache/activemq/network/ConduitBridge.java Tue Oct 26 18:56:17 2010 +0200 @@ -96,7 +96,6 @@ @Override protected void removeDemandSubscription(ConsumerId id) throws IOException { - super.removeDemandSubscription(id); List<DemandSubscription> tmpList = new ArrayList<DemandSubscription>(); for (Iterator i = subscriptionMapByLocalId.values().iterator(); i.hasNext();) { @@ -112,7 +111,7 @@ } for (Iterator<DemandSubscription> i = tmpList.iterator(); i.hasNext();) { DemandSubscription ds = i.next(); - removeSubscription(ds); + super.removeDemandSubscription(ds.getRemoteInfo().getConsumerId()); if (LOG.isDebugEnabled()) { LOG.debug(configuration.getBrokerName() + " removing sub on " + localBroker + " from " + remoteBrokerName + " : " + ds.getRemoteInfo()); }