You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by ttmdev <jo...@ttmsolutions.com> on 2007/10/03 16:06:17 UTC

Re: 6 broker node network results in many duplicate messages or "durable consumer in use" errors

We are also experiencing more or less the same situation, but with a
configuration comprising 2 brokers, one publisher and one durable
subscriber. The brokers and clients are using 'discovery'. 

Has anyone looked into this? 

Joe  
 

Naz Irizarry wrote:
> 
> BACKGROUND
> 
> I am using ActiveMQ 4.1.1 under Java 5.  My 6 broker test-network is  
> illustrated in the attachment.  The brokers would not be colocated in  
> deployment though they are all running on one machine for testing.   
> In deployment there would be clients on all nodes.
> 
> 
> The clients FN1, FN2, and FN3 create serveral durable topics and  
> subscribe to each other's topics.  The brokers use networkTTL="3",  
> conduitSubscriptions="false", dynamicOnly="false"  Messages are  
> acknowledged immediately upon receipt by the clients.
> 
> 
> PROBLEMS
> 
> 1) Client FN1 sees messages from FN2 and FN3 each delivered twice
> 2) Client FN2 sees all messages from FN1 delivered 4 times and  
> messages from FN3 delivered twice
> 3) Client FN3 sees all messages from FN1 delivered 4 times and  
> messages from FN2 delivered twice
> The duplicates arrive approximately one second apart.
> 
> If I stop the brokers, zero out persistent stores, change the brokers  
> to conduitSubscriptions="true" restart the brokers and I bring up  
> FN1, FN2, and FN3 (in that order) then when FN3 comes up:
> 
> 1) At broker bFN2 I get the error " INFO   
> DemandForwardingBridge         - Network connection between vm:// 
> bFn2#4 and ssl://localhost/127.0.0.1:9124 shutdown due to a local  
> error: javax.jms.JMSException: Durable consumer is in use for client:  
> NC_bEn2_inboundbFn2 and subscriptionName: bFn2_ds.Union-3"
> 2) At broker vFN3 I get the error  " INFO   
> DemandForwardingBridge         - Network connection between vm:// 
> bFn3#0 and ssl://localhost/127.0.0.1:9124 shutdown due to a local  
> error: javax.jms.JMSException: Durable consumer is in use for client:  
> NC_bEn2_inboundbFn3 and subscriptionName: bFn3_da.Availability"
> 
> Is this a misconfiguration problem or are these known problems?
> 
> 
> Below are 3 of the configurations
> 
> --------------
> Configuration for bEn2:
> 
> <beans>
> 
>    <bean  
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
> gurer"/>
> 
>    <broker brokerName="bEn2" useJmx="false" persistent="false"  
> xmlns="http://activemq.org/config/1.0">
> 
>      <destinationPolicy>
>        <policyMap>
>          <policyEntries>
> 
>            <policyEntry topic="ds.>">
>              <dispatchPolicy>
>                <strictOrderDispatchPolicy/>
>              </dispatchPolicy>
>              <subscriptionRecoveryPolicy>
>                <timedSubscriptionRecoveryPolicy  
> recoverDuration="900000"/>
>              </subscriptionRecoveryPolicy>
> 
>            </policyEntry>
>            <policyEntry topic="da.>">
>              <dispatchPolicy>
>                <strictOrderDispatchPolicy/>
>              </dispatchPolicy>
>              <subscriptionRecoveryPolicy>
>                <timedSubscriptionRecoveryPolicy  
> recoverDuration="300000"/>
>              </subscriptionRecoveryPolicy>
>            </policyEntry>
> 
>          </policyEntries>
>        </policyMap>
>      </destinationPolicy>
> 
>      <persistenceAdapter>
>        <journaledJDBC journalLogFiles="5"  
> dataDirectory="$activemq.base/activemq-data"/>
>      </persistenceAdapter>
> 
>      <transportConnectors>
>        <!-- 9123 is for local access -->
>        <!-- 9124 is used to bridge the activemq's to each other -->
>        <transportConnector name="c1" uri="tcp://localhost:9123"/>
>        <transportConnector name="c2" uri="ssl://localhost:9124"/>
>      </transportConnectors>
> 
>      <networkConnectors>
> 
>        <!-- Cross Connection to Other Enterprise node -->
>        <networkConnector name="entBridge1"
>          uri="static:(ssl://localhost:9024)"
>          dynamicOnly="false"
>          conduitSubscriptions="false"
>          networkTTL="3"
>          prefetchSize="10"
>        >
> 
>        </networkConnector>
> 
>        <!-- Connection to Forward Node 2 -->
>        <networkConnector name="forward2"
>          uri="static:(ssl://localhost:9324)"
>          dynamicOnly="false"
>          conduitSubscriptions="false"
>          prefetchSize="10"
>          networkTTL="3"
>        >
> 
>        </networkConnector>
> 
>        <!-- Connection to Forward Node 3 -->
>        <networkConnector name="forward3"
>          uri="static:(ssl://localhost:9424)"
>          dynamicOnly="false"
>          conduitSubscriptions="false"
>          prefetchSize="10"
>          networkTTL="3"
>        >
>        </networkConnector>
>      </networkConnectors>
>    </broker>
> </beans>
> 
> -------------
> Configuration for bFn2:
> 
> <beans>
> 
>    <!-- Allows us to use system properties as variables in this  
> configuration file -->
>    <bean  
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
> gurer"/>
> 
>    <broker brokerName="bFn2" useJmx="false" persistent="false"  
> xmlns="http://activemq.org/config/1.0">
> 
>      <destinationPolicy>
>        <policyMap>
>          <policyEntries>
> 
>            <policyEntry topic="ds.>">
>              <dispatchPolicy>
>                <strictOrderDispatchPolicy/>
>              </dispatchPolicy>
>              <subscriptionRecoveryPolicy>
>                <timedSubscriptionRecoveryPolicy  
> recoverDuration="900000"/>
>              </subscriptionRecoveryPolicy>
> 
>            </policyEntry>
>            <policyEntry topic="da.>">
>              <dispatchPolicy>
>                <strictOrderDispatchPolicy/>
>              </dispatchPolicy>
>              <subscriptionRecoveryPolicy>
>                <timedSubscriptionRecoveryPolicy  
> recoverDuration="300000"/>
>              </subscriptionRecoveryPolicy>
>            </policyEntry>
> 
>          </policyEntries>
>        </policyMap>
>      </destinationPolicy>
> 
>      <persistenceAdapter>
>        <journaledJDBC journalLogFiles="5"  
> dataDirectory="$activemq.base/activemq-data"/>
>      </persistenceAdapter>
> 
>      <transportConnectors>
>        <!-- 9023 is for local access -->
>        <!-- 9024 is used to bridge the activemq's to each other -->
>        <transportConnector name="c1" uri="tcp://localhost:9323"/>
>        <transportConnector name="c2" uri="ssl://localhost:9324"/>
>      </transportConnectors>
> 
>      <networkConnectors>
> 
>        <!-- Connection to Enterprise node 2 -->
>        <networkConnector name="en2a"
>          uri="static:(ssl://localhost:9124)"
>          dynamicOnly="false"
>          conduitSubscriptions="false"
>          networkTTL="3"
>          prefetchSize="10"
>        >
>        </networkConnector>
> 
>      </networkConnectors>
>    </broker>
> </beans>
> 
> -------------
> Configuration for bFn3:
> 
> <beans>
>    <bean  
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
> gurer"/>
> 
>    <broker brokerName="bFn3" useJmx="false" persistent="false"  
> xmlns="http://activemq.org/config/1.0">
> 
>      <destinationPolicy>
>        <policyMap>
>          <policyEntries>
> 
>            <policyEntry topic="ds.>">
>              <dispatchPolicy>
>                <strictOrderDispatchPolicy/>
>              </dispatchPolicy>
>              <subscriptionRecoveryPolicy>
>                <timedSubscriptionRecoveryPolicy  
> recoverDuration="900000"/>
>              </subscriptionRecoveryPolicy>
>            </policyEntry>
> 
>            <policyEntry topic="da.>">
>              <dispatchPolicy>
>                <strictOrderDispatchPolicy/>
>              </dispatchPolicy>
>              <subscriptionRecoveryPolicy>
>                <timedSubscriptionRecoveryPolicy  
> recoverDuration="300000"/>
>              </subscriptionRecoveryPolicy>
>            </policyEntry>
> 
>          </policyEntries>
>        </policyMap>
>      </destinationPolicy>
> 
>      <persistenceAdapter>
>        <journaledJDBC journalLogFiles="5"  
> dataDirectory="$activemq.base/activemq-data"/>
>      </persistenceAdapter>
> 
>      <transportConnectors>
>        <!-- 9423 is for internal access -->
>        <!-- 9424 is used to bridge the activemq's to each other -->
>        <transportConnector name="c1" uri="tcp://localhost:9423"/>
>        <transportConnector name="c2" uri="ssl://localhost:9424"/>
>      </transportConnectors>
> 
>      <networkConnectors>
> 
>        <!-- Connection to Enterprise node 2 -->
>        <networkConnector name="en2b"
>          uri="static:(ssl://localhost:9124)"
>          dynamicOnly="false"
>          conduitSubscriptions="false"
>          prefetchSize="10"
>          networkTTL="3"
>        >
>        </networkConnector>
>      </networkConnectors>
>    </broker>
> </beans>
> 
> 
> 
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/6-broker-node-network-results-in-many-duplicate-messages-or-%22durable-consumer-in-use%22-errors-tf4268320s2354.html#a13019653
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: 6 broker node network results in many duplicate messages or "durable consumer in use" errors

Posted by ddossot <da...@dossot.net>.
JIRA issue: https://issues.apache.org/activemq/browse/AMQ-1455

Anyone knows if it is possible to restart a bridge from JMX?


ddossot wrote:
> 
> Here is the exception that makes the bridge die:
> 
> 11:04:46,254 DEBUG [org.apache.activemq.network.DemandForwardingBridge]
> The local Exception was:java.lang.NullPointerException
> java.lang.NullPointerException
>         at
> org.apache.activemq.network.DemandForwardingBridgeSupport.configureMessage(DemandForwardingBridgeSupport.java:539)
>         at
> org.apache.activemq.network.DemandForwardingBridgeSupport.serviceLocalCommand(DemandForwardingBridgeSupport.java:561)
>         at
> org.apache.activemq.network.DemandForwardingBridgeSupport$1.onCommand(DemandForwardingBridgeSupport.java:137)
>         at
> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:100)
>         at
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
>         at
> org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:102)
>         at
> org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
>         at
> org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:59)
>         at
> org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1184)
>         at
> org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:803)
>         at
> org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:838)
>         at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:118)
>         at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:42)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> 
> Using the latest 5 snapshot, on JDK 6.
> 
> As for now, I can not use the network of broker feature. It might be a
> mis-configuration on my side.
> 
> I will open a JIRA for this, with more details.
> 
> D.
> 
> 
> 
> 
> 
> ddossot wrote:
>> 
>> FYI: I have lowered the log threshold of org.apache.activemq.network to
>> DEBUG, as it is at this level the stack trace captured in the handling of
>> "shutdown due to a local error" is logged, and will report here the
>> details of the error that makes the bridge fall down.
>> 
>> D.
>> 
>> 
>> 
>> ddossot wrote:
>>> 
>>> Same here: I have a simple 2 brokers configuration, which discover
>>> themselves via Zeroconf, and the bridge between them regularly fails:
>>> 
>>> 09:27:49,996 INFO  [org.apache.activemq.network.DemandForwardingBridge]
>>> Network connection between vm://node1#2 and
>>> tcp://node2/10.20.116.14:58080 shutdown due to a local error: java.lan
>>> g.NullPointerException
>>> 09:27:50,216 INFO  [org.apache.activemq.network.DemandForwardingBridge]
>>> node1 bridge to node2 stopped
>>> 
>>> D.
>>> 
>>> 
>>> ttmdev wrote:
>>>> 
>>>> We are also experiencing more or less the same situation, but with a
>>>> configuration comprising 2 brokers, one publisher and one durable
>>>> subscriber. The brokers and clients are using 'discovery'. 
>>>> 
>>>> Has anyone looked into this? 
>>>> 
>>>> Joe  
>>>>  
>>>> 
>>>> Naz Irizarry wrote:
>>>>> 
>>>>> BACKGROUND
>>>>> 
>>>>> I am using ActiveMQ 4.1.1 under Java 5.  My 6 broker test-network is  
>>>>> illustrated in the attachment.  The brokers would not be colocated in  
>>>>> deployment though they are all running on one machine for testing.   
>>>>> In deployment there would be clients on all nodes.
>>>>> 
>>>>> 
>>>>> The clients FN1, FN2, and FN3 create serveral durable topics and  
>>>>> subscribe to each other's topics.  The brokers use networkTTL="3",  
>>>>> conduitSubscriptions="false", dynamicOnly="false"  Messages are  
>>>>> acknowledged immediately upon receipt by the clients.
>>>>> 
>>>>> 
>>>>> PROBLEMS
>>>>> 
>>>>> 1) Client FN1 sees messages from FN2 and FN3 each delivered twice
>>>>> 2) Client FN2 sees all messages from FN1 delivered 4 times and  
>>>>> messages from FN3 delivered twice
>>>>> 3) Client FN3 sees all messages from FN1 delivered 4 times and  
>>>>> messages from FN2 delivered twice
>>>>> The duplicates arrive approximately one second apart.
>>>>> 
>>>>> If I stop the brokers, zero out persistent stores, change the brokers  
>>>>> to conduitSubscriptions="true" restart the brokers and I bring up  
>>>>> FN1, FN2, and FN3 (in that order) then when FN3 comes up:
>>>>> 
>>>>> 1) At broker bFN2 I get the error " INFO   
>>>>> DemandForwardingBridge         - Network connection between vm:// 
>>>>> bFn2#4 and ssl://localhost/127.0.0.1:9124 shutdown due to a local  
>>>>> error: javax.jms.JMSException: Durable consumer is in use for client:  
>>>>> NC_bEn2_inboundbFn2 and subscriptionName: bFn2_ds.Union-3"
>>>>> 2) At broker vFN3 I get the error  " INFO   
>>>>> DemandForwardingBridge         - Network connection between vm:// 
>>>>> bFn3#0 and ssl://localhost/127.0.0.1:9124 shutdown due to a local  
>>>>> error: javax.jms.JMSException: Durable consumer is in use for client:  
>>>>> NC_bEn2_inboundbFn3 and subscriptionName: bFn3_da.Availability"
>>>>> 
>>>>> Is this a misconfiguration problem or are these known problems?
>>>>> 
>>>>> 
>>>>> Below are 3 of the configurations
>>>>> 
>>>>> --------------
>>>>> Configuration for bEn2:
>>>>> 
>>>>> <beans>
>>>>> 
>>>>>    <bean  
>>>>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
>>>>> gurer"/>
>>>>> 
>>>>>    <broker brokerName="bEn2" useJmx="false" persistent="false"  
>>>>> xmlns="http://activemq.org/config/1.0">
>>>>> 
>>>>>      <destinationPolicy>
>>>>>        <policyMap>
>>>>>          <policyEntries>
>>>>> 
>>>>>            <policyEntry topic="ds.>">
>>>>>              <dispatchPolicy>
>>>>>                <strictOrderDispatchPolicy/>
>>>>>              </dispatchPolicy>
>>>>>              <subscriptionRecoveryPolicy>
>>>>>                <timedSubscriptionRecoveryPolicy  
>>>>> recoverDuration="900000"/>
>>>>>              </subscriptionRecoveryPolicy>
>>>>> 
>>>>>            </policyEntry>
>>>>>            <policyEntry topic="da.>">
>>>>>              <dispatchPolicy>
>>>>>                <strictOrderDispatchPolicy/>
>>>>>              </dispatchPolicy>
>>>>>              <subscriptionRecoveryPolicy>
>>>>>                <timedSubscriptionRecoveryPolicy  
>>>>> recoverDuration="300000"/>
>>>>>              </subscriptionRecoveryPolicy>
>>>>>            </policyEntry>
>>>>> 
>>>>>          </policyEntries>
>>>>>        </policyMap>
>>>>>      </destinationPolicy>
>>>>> 
>>>>>      <persistenceAdapter>
>>>>>        <journaledJDBC journalLogFiles="5"  
>>>>> dataDirectory="$activemq.base/activemq-data"/>
>>>>>      </persistenceAdapter>
>>>>> 
>>>>>      <transportConnectors>
>>>>>        <!-- 9123 is for local access -->
>>>>>        <!-- 9124 is used to bridge the activemq's to each other -->
>>>>>        <transportConnector name="c1" uri="tcp://localhost:9123"/>
>>>>>        <transportConnector name="c2" uri="ssl://localhost:9124"/>
>>>>>      </transportConnectors>
>>>>> 
>>>>>      <networkConnectors>
>>>>> 
>>>>>        <!-- Cross Connection to Other Enterprise node -->
>>>>>        <networkConnector name="entBridge1"
>>>>>          uri="static:(ssl://localhost:9024)"
>>>>>          dynamicOnly="false"
>>>>>          conduitSubscriptions="false"
>>>>>          networkTTL="3"
>>>>>          prefetchSize="10"
>>>>>        >
>>>>> 
>>>>>        </networkConnector>
>>>>> 
>>>>>        <!-- Connection to Forward Node 2 -->
>>>>>        <networkConnector name="forward2"
>>>>>          uri="static:(ssl://localhost:9324)"
>>>>>          dynamicOnly="false"
>>>>>          conduitSubscriptions="false"
>>>>>          prefetchSize="10"
>>>>>          networkTTL="3"
>>>>>        >
>>>>> 
>>>>>        </networkConnector>
>>>>> 
>>>>>        <!-- Connection to Forward Node 3 -->
>>>>>        <networkConnector name="forward3"
>>>>>          uri="static:(ssl://localhost:9424)"
>>>>>          dynamicOnly="false"
>>>>>          conduitSubscriptions="false"
>>>>>          prefetchSize="10"
>>>>>          networkTTL="3"
>>>>>        >
>>>>>        </networkConnector>
>>>>>      </networkConnectors>
>>>>>    </broker>
>>>>> </beans>
>>>>> 
>>>>> -------------
>>>>> Configuration for bFn2:
>>>>> 
>>>>> <beans>
>>>>> 
>>>>>    <!-- Allows us to use system properties as variables in this  
>>>>> configuration file -->
>>>>>    <bean  
>>>>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
>>>>> gurer"/>
>>>>> 
>>>>>    <broker brokerName="bFn2" useJmx="false" persistent="false"  
>>>>> xmlns="http://activemq.org/config/1.0">
>>>>> 
>>>>>      <destinationPolicy>
>>>>>        <policyMap>
>>>>>          <policyEntries>
>>>>> 
>>>>>            <policyEntry topic="ds.>">
>>>>>              <dispatchPolicy>
>>>>>                <strictOrderDispatchPolicy/>
>>>>>              </dispatchPolicy>
>>>>>              <subscriptionRecoveryPolicy>
>>>>>                <timedSubscriptionRecoveryPolicy  
>>>>> recoverDuration="900000"/>
>>>>>              </subscriptionRecoveryPolicy>
>>>>> 
>>>>>            </policyEntry>
>>>>>            <policyEntry topic="da.>">
>>>>>              <dispatchPolicy>
>>>>>                <strictOrderDispatchPolicy/>
>>>>>              </dispatchPolicy>
>>>>>              <subscriptionRecoveryPolicy>
>>>>>                <timedSubscriptionRecoveryPolicy  
>>>>> recoverDuration="300000"/>
>>>>>              </subscriptionRecoveryPolicy>
>>>>>            </policyEntry>
>>>>> 
>>>>>          </policyEntries>
>>>>>        </policyMap>
>>>>>      </destinationPolicy>
>>>>> 
>>>>>      <persistenceAdapter>
>>>>>        <journaledJDBC journalLogFiles="5"  
>>>>> dataDirectory="$activemq.base/activemq-data"/>
>>>>>      </persistenceAdapter>
>>>>> 
>>>>>      <transportConnectors>
>>>>>        <!-- 9023 is for local access -->
>>>>>        <!-- 9024 is used to bridge the activemq's to each other -->
>>>>>        <transportConnector name="c1" uri="tcp://localhost:9323"/>
>>>>>        <transportConnector name="c2" uri="ssl://localhost:9324"/>
>>>>>      </transportConnectors>
>>>>> 
>>>>>      <networkConnectors>
>>>>> 
>>>>>        <!-- Connection to Enterprise node 2 -->
>>>>>        <networkConnector name="en2a"
>>>>>          uri="static:(ssl://localhost:9124)"
>>>>>          dynamicOnly="false"
>>>>>          conduitSubscriptions="false"
>>>>>          networkTTL="3"
>>>>>          prefetchSize="10"
>>>>>        >
>>>>>        </networkConnector>
>>>>> 
>>>>>      </networkConnectors>
>>>>>    </broker>
>>>>> </beans>
>>>>> 
>>>>> -------------
>>>>> Configuration for bFn3:
>>>>> 
>>>>> <beans>
>>>>>    <bean  
>>>>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
>>>>> gurer"/>
>>>>> 
>>>>>    <broker brokerName="bFn3" useJmx="false" persistent="false"  
>>>>> xmlns="http://activemq.org/config/1.0">
>>>>> 
>>>>>      <destinationPolicy>
>>>>>        <policyMap>
>>>>>          <policyEntries>
>>>>> 
>>>>>            <policyEntry topic="ds.>">
>>>>>              <dispatchPolicy>
>>>>>                <strictOrderDispatchPolicy/>
>>>>>              </dispatchPolicy>
>>>>>              <subscriptionRecoveryPolicy>
>>>>>                <timedSubscriptionRecoveryPolicy  
>>>>> recoverDuration="900000"/>
>>>>>              </subscriptionRecoveryPolicy>
>>>>>            </policyEntry>
>>>>> 
>>>>>            <policyEntry topic="da.>">
>>>>>              <dispatchPolicy>
>>>>>                <strictOrderDispatchPolicy/>
>>>>>              </dispatchPolicy>
>>>>>              <subscriptionRecoveryPolicy>
>>>>>                <timedSubscriptionRecoveryPolicy  
>>>>> recoverDuration="300000"/>
>>>>>              </subscriptionRecoveryPolicy>
>>>>>            </policyEntry>
>>>>> 
>>>>>          </policyEntries>
>>>>>        </policyMap>
>>>>>      </destinationPolicy>
>>>>> 
>>>>>      <persistenceAdapter>
>>>>>        <journaledJDBC journalLogFiles="5"  
>>>>> dataDirectory="$activemq.base/activemq-data"/>
>>>>>      </persistenceAdapter>
>>>>> 
>>>>>      <transportConnectors>
>>>>>        <!-- 9423 is for internal access -->
>>>>>        <!-- 9424 is used to bridge the activemq's to each other -->
>>>>>        <transportConnector name="c1" uri="tcp://localhost:9423"/>
>>>>>        <transportConnector name="c2" uri="ssl://localhost:9424"/>
>>>>>      </transportConnectors>
>>>>> 
>>>>>      <networkConnectors>
>>>>> 
>>>>>        <!-- Connection to Enterprise node 2 -->
>>>>>        <networkConnector name="en2b"
>>>>>          uri="static:(ssl://localhost:9124)"
>>>>>          dynamicOnly="false"
>>>>>          conduitSubscriptions="false"
>>>>>          prefetchSize="10"
>>>>>          networkTTL="3"
>>>>>        >
>>>>>        </networkConnector>
>>>>>      </networkConnectors>
>>>>>    </broker>
>>>>> </beans>
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/6-broker-node-network-results-in-many-duplicate-messages-or-%22durable-consumer-in-use%22-errors-tf4268320s2354.html#a13140349
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: 6 broker node network results in many duplicate messages or "durable consumer in use" errors

Posted by ddossot <da...@dossot.net>.
Here is the exception that makes the bridge die:

11:04:46,254 DEBUG [org.apache.activemq.network.DemandForwardingBridge] The
local Exception was:java.lang.NullPointerException
java.lang.NullPointerException
        at
org.apache.activemq.network.DemandForwardingBridgeSupport.configureMessage(DemandForwardingBridgeSupport.java:539)
        at
org.apache.activemq.network.DemandForwardingBridgeSupport.serviceLocalCommand(DemandForwardingBridgeSupport.java:561)
        at
org.apache.activemq.network.DemandForwardingBridgeSupport$1.onCommand(DemandForwardingBridgeSupport.java:137)
        at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:100)
        at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
        at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:102)
        at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
        at
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:59)
        at
org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1184)
        at
org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:803)
        at
org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:838)
        at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:118)
        at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:42)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)

Using the latest 5 snapshot, on JDK 6.

As for now, I can not use the network of broker feature. It might be a
mis-configuration on my side.

I will open a JIRA for this, with more details.

D.





ddossot wrote:
> 
> FYI: I have lowered the log threshold of org.apache.activemq.network to
> DEBUG, as it is at this level the stack trace captured in the handling of
> "shutdown due to a local error" is logged, and will report here the
> details of the error that makes the bridge fall down.
> 
> D.
> 
> 
> 
> ddossot wrote:
>> 
>> Same here: I have a simple 2 brokers configuration, which discover
>> themselves via Zeroconf, and the bridge between them regularly fails:
>> 
>> 09:27:49,996 INFO  [org.apache.activemq.network.DemandForwardingBridge]
>> Network connection between vm://node1#2 and
>> tcp://node2/10.20.116.14:58080 shutdown due to a local error: java.lan
>> g.NullPointerException
>> 09:27:50,216 INFO  [org.apache.activemq.network.DemandForwardingBridge]
>> node1 bridge to node2 stopped
>> 
>> D.
>> 
>> 
>> ttmdev wrote:
>>> 
>>> We are also experiencing more or less the same situation, but with a
>>> configuration comprising 2 brokers, one publisher and one durable
>>> subscriber. The brokers and clients are using 'discovery'. 
>>> 
>>> Has anyone looked into this? 
>>> 
>>> Joe  
>>>  
>>> 
>>> Naz Irizarry wrote:
>>>> 
>>>> BACKGROUND
>>>> 
>>>> I am using ActiveMQ 4.1.1 under Java 5.  My 6 broker test-network is  
>>>> illustrated in the attachment.  The brokers would not be colocated in  
>>>> deployment though they are all running on one machine for testing.   
>>>> In deployment there would be clients on all nodes.
>>>> 
>>>> 
>>>> The clients FN1, FN2, and FN3 create serveral durable topics and  
>>>> subscribe to each other's topics.  The brokers use networkTTL="3",  
>>>> conduitSubscriptions="false", dynamicOnly="false"  Messages are  
>>>> acknowledged immediately upon receipt by the clients.
>>>> 
>>>> 
>>>> PROBLEMS
>>>> 
>>>> 1) Client FN1 sees messages from FN2 and FN3 each delivered twice
>>>> 2) Client FN2 sees all messages from FN1 delivered 4 times and  
>>>> messages from FN3 delivered twice
>>>> 3) Client FN3 sees all messages from FN1 delivered 4 times and  
>>>> messages from FN2 delivered twice
>>>> The duplicates arrive approximately one second apart.
>>>> 
>>>> If I stop the brokers, zero out persistent stores, change the brokers  
>>>> to conduitSubscriptions="true" restart the brokers and I bring up  
>>>> FN1, FN2, and FN3 (in that order) then when FN3 comes up:
>>>> 
>>>> 1) At broker bFN2 I get the error " INFO   
>>>> DemandForwardingBridge         - Network connection between vm:// 
>>>> bFn2#4 and ssl://localhost/127.0.0.1:9124 shutdown due to a local  
>>>> error: javax.jms.JMSException: Durable consumer is in use for client:  
>>>> NC_bEn2_inboundbFn2 and subscriptionName: bFn2_ds.Union-3"
>>>> 2) At broker vFN3 I get the error  " INFO   
>>>> DemandForwardingBridge         - Network connection between vm:// 
>>>> bFn3#0 and ssl://localhost/127.0.0.1:9124 shutdown due to a local  
>>>> error: javax.jms.JMSException: Durable consumer is in use for client:  
>>>> NC_bEn2_inboundbFn3 and subscriptionName: bFn3_da.Availability"
>>>> 
>>>> Is this a misconfiguration problem or are these known problems?
>>>> 
>>>> 
>>>> Below are 3 of the configurations
>>>> 
>>>> --------------
>>>> Configuration for bEn2:
>>>> 
>>>> <beans>
>>>> 
>>>>    <bean  
>>>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
>>>> gurer"/>
>>>> 
>>>>    <broker brokerName="bEn2" useJmx="false" persistent="false"  
>>>> xmlns="http://activemq.org/config/1.0">
>>>> 
>>>>      <destinationPolicy>
>>>>        <policyMap>
>>>>          <policyEntries>
>>>> 
>>>>            <policyEntry topic="ds.>">
>>>>              <dispatchPolicy>
>>>>                <strictOrderDispatchPolicy/>
>>>>              </dispatchPolicy>
>>>>              <subscriptionRecoveryPolicy>
>>>>                <timedSubscriptionRecoveryPolicy  
>>>> recoverDuration="900000"/>
>>>>              </subscriptionRecoveryPolicy>
>>>> 
>>>>            </policyEntry>
>>>>            <policyEntry topic="da.>">
>>>>              <dispatchPolicy>
>>>>                <strictOrderDispatchPolicy/>
>>>>              </dispatchPolicy>
>>>>              <subscriptionRecoveryPolicy>
>>>>                <timedSubscriptionRecoveryPolicy  
>>>> recoverDuration="300000"/>
>>>>              </subscriptionRecoveryPolicy>
>>>>            </policyEntry>
>>>> 
>>>>          </policyEntries>
>>>>        </policyMap>
>>>>      </destinationPolicy>
>>>> 
>>>>      <persistenceAdapter>
>>>>        <journaledJDBC journalLogFiles="5"  
>>>> dataDirectory="$activemq.base/activemq-data"/>
>>>>      </persistenceAdapter>
>>>> 
>>>>      <transportConnectors>
>>>>        <!-- 9123 is for local access -->
>>>>        <!-- 9124 is used to bridge the activemq's to each other -->
>>>>        <transportConnector name="c1" uri="tcp://localhost:9123"/>
>>>>        <transportConnector name="c2" uri="ssl://localhost:9124"/>
>>>>      </transportConnectors>
>>>> 
>>>>      <networkConnectors>
>>>> 
>>>>        <!-- Cross Connection to Other Enterprise node -->
>>>>        <networkConnector name="entBridge1"
>>>>          uri="static:(ssl://localhost:9024)"
>>>>          dynamicOnly="false"
>>>>          conduitSubscriptions="false"
>>>>          networkTTL="3"
>>>>          prefetchSize="10"
>>>>        >
>>>> 
>>>>        </networkConnector>
>>>> 
>>>>        <!-- Connection to Forward Node 2 -->
>>>>        <networkConnector name="forward2"
>>>>          uri="static:(ssl://localhost:9324)"
>>>>          dynamicOnly="false"
>>>>          conduitSubscriptions="false"
>>>>          prefetchSize="10"
>>>>          networkTTL="3"
>>>>        >
>>>> 
>>>>        </networkConnector>
>>>> 
>>>>        <!-- Connection to Forward Node 3 -->
>>>>        <networkConnector name="forward3"
>>>>          uri="static:(ssl://localhost:9424)"
>>>>          dynamicOnly="false"
>>>>          conduitSubscriptions="false"
>>>>          prefetchSize="10"
>>>>          networkTTL="3"
>>>>        >
>>>>        </networkConnector>
>>>>      </networkConnectors>
>>>>    </broker>
>>>> </beans>
>>>> 
>>>> -------------
>>>> Configuration for bFn2:
>>>> 
>>>> <beans>
>>>> 
>>>>    <!-- Allows us to use system properties as variables in this  
>>>> configuration file -->
>>>>    <bean  
>>>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
>>>> gurer"/>
>>>> 
>>>>    <broker brokerName="bFn2" useJmx="false" persistent="false"  
>>>> xmlns="http://activemq.org/config/1.0">
>>>> 
>>>>      <destinationPolicy>
>>>>        <policyMap>
>>>>          <policyEntries>
>>>> 
>>>>            <policyEntry topic="ds.>">
>>>>              <dispatchPolicy>
>>>>                <strictOrderDispatchPolicy/>
>>>>              </dispatchPolicy>
>>>>              <subscriptionRecoveryPolicy>
>>>>                <timedSubscriptionRecoveryPolicy  
>>>> recoverDuration="900000"/>
>>>>              </subscriptionRecoveryPolicy>
>>>> 
>>>>            </policyEntry>
>>>>            <policyEntry topic="da.>">
>>>>              <dispatchPolicy>
>>>>                <strictOrderDispatchPolicy/>
>>>>              </dispatchPolicy>
>>>>              <subscriptionRecoveryPolicy>
>>>>                <timedSubscriptionRecoveryPolicy  
>>>> recoverDuration="300000"/>
>>>>              </subscriptionRecoveryPolicy>
>>>>            </policyEntry>
>>>> 
>>>>          </policyEntries>
>>>>        </policyMap>
>>>>      </destinationPolicy>
>>>> 
>>>>      <persistenceAdapter>
>>>>        <journaledJDBC journalLogFiles="5"  
>>>> dataDirectory="$activemq.base/activemq-data"/>
>>>>      </persistenceAdapter>
>>>> 
>>>>      <transportConnectors>
>>>>        <!-- 9023 is for local access -->
>>>>        <!-- 9024 is used to bridge the activemq's to each other -->
>>>>        <transportConnector name="c1" uri="tcp://localhost:9323"/>
>>>>        <transportConnector name="c2" uri="ssl://localhost:9324"/>
>>>>      </transportConnectors>
>>>> 
>>>>      <networkConnectors>
>>>> 
>>>>        <!-- Connection to Enterprise node 2 -->
>>>>        <networkConnector name="en2a"
>>>>          uri="static:(ssl://localhost:9124)"
>>>>          dynamicOnly="false"
>>>>          conduitSubscriptions="false"
>>>>          networkTTL="3"
>>>>          prefetchSize="10"
>>>>        >
>>>>        </networkConnector>
>>>> 
>>>>      </networkConnectors>
>>>>    </broker>
>>>> </beans>
>>>> 
>>>> -------------
>>>> Configuration for bFn3:
>>>> 
>>>> <beans>
>>>>    <bean  
>>>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
>>>> gurer"/>
>>>> 
>>>>    <broker brokerName="bFn3" useJmx="false" persistent="false"  
>>>> xmlns="http://activemq.org/config/1.0">
>>>> 
>>>>      <destinationPolicy>
>>>>        <policyMap>
>>>>          <policyEntries>
>>>> 
>>>>            <policyEntry topic="ds.>">
>>>>              <dispatchPolicy>
>>>>                <strictOrderDispatchPolicy/>
>>>>              </dispatchPolicy>
>>>>              <subscriptionRecoveryPolicy>
>>>>                <timedSubscriptionRecoveryPolicy  
>>>> recoverDuration="900000"/>
>>>>              </subscriptionRecoveryPolicy>
>>>>            </policyEntry>
>>>> 
>>>>            <policyEntry topic="da.>">
>>>>              <dispatchPolicy>
>>>>                <strictOrderDispatchPolicy/>
>>>>              </dispatchPolicy>
>>>>              <subscriptionRecoveryPolicy>
>>>>                <timedSubscriptionRecoveryPolicy  
>>>> recoverDuration="300000"/>
>>>>              </subscriptionRecoveryPolicy>
>>>>            </policyEntry>
>>>> 
>>>>          </policyEntries>
>>>>        </policyMap>
>>>>      </destinationPolicy>
>>>> 
>>>>      <persistenceAdapter>
>>>>        <journaledJDBC journalLogFiles="5"  
>>>> dataDirectory="$activemq.base/activemq-data"/>
>>>>      </persistenceAdapter>
>>>> 
>>>>      <transportConnectors>
>>>>        <!-- 9423 is for internal access -->
>>>>        <!-- 9424 is used to bridge the activemq's to each other -->
>>>>        <transportConnector name="c1" uri="tcp://localhost:9423"/>
>>>>        <transportConnector name="c2" uri="ssl://localhost:9424"/>
>>>>      </transportConnectors>
>>>> 
>>>>      <networkConnectors>
>>>> 
>>>>        <!-- Connection to Enterprise node 2 -->
>>>>        <networkConnector name="en2b"
>>>>          uri="static:(ssl://localhost:9124)"
>>>>          dynamicOnly="false"
>>>>          conduitSubscriptions="false"
>>>>          prefetchSize="10"
>>>>          networkTTL="3"
>>>>        >
>>>>        </networkConnector>
>>>>      </networkConnectors>
>>>>    </broker>
>>>> </beans>
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/6-broker-node-network-results-in-many-duplicate-messages-or-%22durable-consumer-in-use%22-errors-tf4268320s2354.html#a13121397
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: 6 broker node network results in many duplicate messages or "durable consumer in use" errors

Posted by ddossot <da...@dossot.net>.
FYI: I have lowered the log threshold of org.apache.activemq.network to
DEBUG, as it is at this level the stack trace captured in the handling of
"shutdown due to a local error" is logged, and will report here the details
of the error that makes the bridge fall down.

D.



ddossot wrote:
> 
> Same here: I have a simple 2 brokers configuration, which discover
> themselves via Zeroconf, and the bridge between them regularly fails:
> 
> 09:27:49,996 INFO  [org.apache.activemq.network.DemandForwardingBridge]
> Network connection between vm://node1#2 and tcp://node2/10.20.116.14:58080
> shutdown due to a local error: java.lan
> g.NullPointerException
> 09:27:50,216 INFO  [org.apache.activemq.network.DemandForwardingBridge]
> node1 bridge to node2 stopped
> 
> D.
> 
> 
> ttmdev wrote:
>> 
>> We are also experiencing more or less the same situation, but with a
>> configuration comprising 2 brokers, one publisher and one durable
>> subscriber. The brokers and clients are using 'discovery'. 
>> 
>> Has anyone looked into this? 
>> 
>> Joe  
>>  
>> 
>> Naz Irizarry wrote:
>>> 
>>> BACKGROUND
>>> 
>>> I am using ActiveMQ 4.1.1 under Java 5.  My 6 broker test-network is  
>>> illustrated in the attachment.  The brokers would not be colocated in  
>>> deployment though they are all running on one machine for testing.   
>>> In deployment there would be clients on all nodes.
>>> 
>>> 
>>> The clients FN1, FN2, and FN3 create serveral durable topics and  
>>> subscribe to each other's topics.  The brokers use networkTTL="3",  
>>> conduitSubscriptions="false", dynamicOnly="false"  Messages are  
>>> acknowledged immediately upon receipt by the clients.
>>> 
>>> 
>>> PROBLEMS
>>> 
>>> 1) Client FN1 sees messages from FN2 and FN3 each delivered twice
>>> 2) Client FN2 sees all messages from FN1 delivered 4 times and  
>>> messages from FN3 delivered twice
>>> 3) Client FN3 sees all messages from FN1 delivered 4 times and  
>>> messages from FN2 delivered twice
>>> The duplicates arrive approximately one second apart.
>>> 
>>> If I stop the brokers, zero out persistent stores, change the brokers  
>>> to conduitSubscriptions="true" restart the brokers and I bring up  
>>> FN1, FN2, and FN3 (in that order) then when FN3 comes up:
>>> 
>>> 1) At broker bFN2 I get the error " INFO   
>>> DemandForwardingBridge         - Network connection between vm:// 
>>> bFn2#4 and ssl://localhost/127.0.0.1:9124 shutdown due to a local  
>>> error: javax.jms.JMSException: Durable consumer is in use for client:  
>>> NC_bEn2_inboundbFn2 and subscriptionName: bFn2_ds.Union-3"
>>> 2) At broker vFN3 I get the error  " INFO   
>>> DemandForwardingBridge         - Network connection between vm:// 
>>> bFn3#0 and ssl://localhost/127.0.0.1:9124 shutdown due to a local  
>>> error: javax.jms.JMSException: Durable consumer is in use for client:  
>>> NC_bEn2_inboundbFn3 and subscriptionName: bFn3_da.Availability"
>>> 
>>> Is this a misconfiguration problem or are these known problems?
>>> 
>>> 
>>> Below are 3 of the configurations
>>> 
>>> --------------
>>> Configuration for bEn2:
>>> 
>>> <beans>
>>> 
>>>    <bean  
>>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
>>> gurer"/>
>>> 
>>>    <broker brokerName="bEn2" useJmx="false" persistent="false"  
>>> xmlns="http://activemq.org/config/1.0">
>>> 
>>>      <destinationPolicy>
>>>        <policyMap>
>>>          <policyEntries>
>>> 
>>>            <policyEntry topic="ds.>">
>>>              <dispatchPolicy>
>>>                <strictOrderDispatchPolicy/>
>>>              </dispatchPolicy>
>>>              <subscriptionRecoveryPolicy>
>>>                <timedSubscriptionRecoveryPolicy  
>>> recoverDuration="900000"/>
>>>              </subscriptionRecoveryPolicy>
>>> 
>>>            </policyEntry>
>>>            <policyEntry topic="da.>">
>>>              <dispatchPolicy>
>>>                <strictOrderDispatchPolicy/>
>>>              </dispatchPolicy>
>>>              <subscriptionRecoveryPolicy>
>>>                <timedSubscriptionRecoveryPolicy  
>>> recoverDuration="300000"/>
>>>              </subscriptionRecoveryPolicy>
>>>            </policyEntry>
>>> 
>>>          </policyEntries>
>>>        </policyMap>
>>>      </destinationPolicy>
>>> 
>>>      <persistenceAdapter>
>>>        <journaledJDBC journalLogFiles="5"  
>>> dataDirectory="$activemq.base/activemq-data"/>
>>>      </persistenceAdapter>
>>> 
>>>      <transportConnectors>
>>>        <!-- 9123 is for local access -->
>>>        <!-- 9124 is used to bridge the activemq's to each other -->
>>>        <transportConnector name="c1" uri="tcp://localhost:9123"/>
>>>        <transportConnector name="c2" uri="ssl://localhost:9124"/>
>>>      </transportConnectors>
>>> 
>>>      <networkConnectors>
>>> 
>>>        <!-- Cross Connection to Other Enterprise node -->
>>>        <networkConnector name="entBridge1"
>>>          uri="static:(ssl://localhost:9024)"
>>>          dynamicOnly="false"
>>>          conduitSubscriptions="false"
>>>          networkTTL="3"
>>>          prefetchSize="10"
>>>        >
>>> 
>>>        </networkConnector>
>>> 
>>>        <!-- Connection to Forward Node 2 -->
>>>        <networkConnector name="forward2"
>>>          uri="static:(ssl://localhost:9324)"
>>>          dynamicOnly="false"
>>>          conduitSubscriptions="false"
>>>          prefetchSize="10"
>>>          networkTTL="3"
>>>        >
>>> 
>>>        </networkConnector>
>>> 
>>>        <!-- Connection to Forward Node 3 -->
>>>        <networkConnector name="forward3"
>>>          uri="static:(ssl://localhost:9424)"
>>>          dynamicOnly="false"
>>>          conduitSubscriptions="false"
>>>          prefetchSize="10"
>>>          networkTTL="3"
>>>        >
>>>        </networkConnector>
>>>      </networkConnectors>
>>>    </broker>
>>> </beans>
>>> 
>>> -------------
>>> Configuration for bFn2:
>>> 
>>> <beans>
>>> 
>>>    <!-- Allows us to use system properties as variables in this  
>>> configuration file -->
>>>    <bean  
>>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
>>> gurer"/>
>>> 
>>>    <broker brokerName="bFn2" useJmx="false" persistent="false"  
>>> xmlns="http://activemq.org/config/1.0">
>>> 
>>>      <destinationPolicy>
>>>        <policyMap>
>>>          <policyEntries>
>>> 
>>>            <policyEntry topic="ds.>">
>>>              <dispatchPolicy>
>>>                <strictOrderDispatchPolicy/>
>>>              </dispatchPolicy>
>>>              <subscriptionRecoveryPolicy>
>>>                <timedSubscriptionRecoveryPolicy  
>>> recoverDuration="900000"/>
>>>              </subscriptionRecoveryPolicy>
>>> 
>>>            </policyEntry>
>>>            <policyEntry topic="da.>">
>>>              <dispatchPolicy>
>>>                <strictOrderDispatchPolicy/>
>>>              </dispatchPolicy>
>>>              <subscriptionRecoveryPolicy>
>>>                <timedSubscriptionRecoveryPolicy  
>>> recoverDuration="300000"/>
>>>              </subscriptionRecoveryPolicy>
>>>            </policyEntry>
>>> 
>>>          </policyEntries>
>>>        </policyMap>
>>>      </destinationPolicy>
>>> 
>>>      <persistenceAdapter>
>>>        <journaledJDBC journalLogFiles="5"  
>>> dataDirectory="$activemq.base/activemq-data"/>
>>>      </persistenceAdapter>
>>> 
>>>      <transportConnectors>
>>>        <!-- 9023 is for local access -->
>>>        <!-- 9024 is used to bridge the activemq's to each other -->
>>>        <transportConnector name="c1" uri="tcp://localhost:9323"/>
>>>        <transportConnector name="c2" uri="ssl://localhost:9324"/>
>>>      </transportConnectors>
>>> 
>>>      <networkConnectors>
>>> 
>>>        <!-- Connection to Enterprise node 2 -->
>>>        <networkConnector name="en2a"
>>>          uri="static:(ssl://localhost:9124)"
>>>          dynamicOnly="false"
>>>          conduitSubscriptions="false"
>>>          networkTTL="3"
>>>          prefetchSize="10"
>>>        >
>>>        </networkConnector>
>>> 
>>>      </networkConnectors>
>>>    </broker>
>>> </beans>
>>> 
>>> -------------
>>> Configuration for bFn3:
>>> 
>>> <beans>
>>>    <bean  
>>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
>>> gurer"/>
>>> 
>>>    <broker brokerName="bFn3" useJmx="false" persistent="false"  
>>> xmlns="http://activemq.org/config/1.0">
>>> 
>>>      <destinationPolicy>
>>>        <policyMap>
>>>          <policyEntries>
>>> 
>>>            <policyEntry topic="ds.>">
>>>              <dispatchPolicy>
>>>                <strictOrderDispatchPolicy/>
>>>              </dispatchPolicy>
>>>              <subscriptionRecoveryPolicy>
>>>                <timedSubscriptionRecoveryPolicy  
>>> recoverDuration="900000"/>
>>>              </subscriptionRecoveryPolicy>
>>>            </policyEntry>
>>> 
>>>            <policyEntry topic="da.>">
>>>              <dispatchPolicy>
>>>                <strictOrderDispatchPolicy/>
>>>              </dispatchPolicy>
>>>              <subscriptionRecoveryPolicy>
>>>                <timedSubscriptionRecoveryPolicy  
>>> recoverDuration="300000"/>
>>>              </subscriptionRecoveryPolicy>
>>>            </policyEntry>
>>> 
>>>          </policyEntries>
>>>        </policyMap>
>>>      </destinationPolicy>
>>> 
>>>      <persistenceAdapter>
>>>        <journaledJDBC journalLogFiles="5"  
>>> dataDirectory="$activemq.base/activemq-data"/>
>>>      </persistenceAdapter>
>>> 
>>>      <transportConnectors>
>>>        <!-- 9423 is for internal access -->
>>>        <!-- 9424 is used to bridge the activemq's to each other -->
>>>        <transportConnector name="c1" uri="tcp://localhost:9423"/>
>>>        <transportConnector name="c2" uri="ssl://localhost:9424"/>
>>>      </transportConnectors>
>>> 
>>>      <networkConnectors>
>>> 
>>>        <!-- Connection to Enterprise node 2 -->
>>>        <networkConnector name="en2b"
>>>          uri="static:(ssl://localhost:9124)"
>>>          dynamicOnly="false"
>>>          conduitSubscriptions="false"
>>>          prefetchSize="10"
>>>          networkTTL="3"
>>>        >
>>>        </networkConnector>
>>>      </networkConnectors>
>>>    </broker>
>>> </beans>
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/6-broker-node-network-results-in-many-duplicate-messages-or-%22durable-consumer-in-use%22-errors-tf4268320s2354.html#a13077071
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: 6 broker node network results in many duplicate messages or "durable consumer in use" errors

Posted by ddossot <da...@dossot.net>.
Same here: I have a simple 2 brokers configuration, which discover themselves
via Zeroconf, and the bridge between them regularly fails:

09:27:49,996 INFO  [org.apache.activemq.network.DemandForwardingBridge]
Network connection between vm://node1#2 and tcp://node2/10.20.116.14:58080
shutdown due to a local error: java.lan
g.NullPointerException
09:27:50,216 INFO  [org.apache.activemq.network.DemandForwardingBridge]
node1 bridge to node2 stopped

D.


ttmdev wrote:
> 
> We are also experiencing more or less the same situation, but with a
> configuration comprising 2 brokers, one publisher and one durable
> subscriber. The brokers and clients are using 'discovery'. 
> 
> Has anyone looked into this? 
> 
> Joe  
>  
> 
> Naz Irizarry wrote:
>> 
>> BACKGROUND
>> 
>> I am using ActiveMQ 4.1.1 under Java 5.  My 6 broker test-network is  
>> illustrated in the attachment.  The brokers would not be colocated in  
>> deployment though they are all running on one machine for testing.   
>> In deployment there would be clients on all nodes.
>> 
>> 
>> The clients FN1, FN2, and FN3 create serveral durable topics and  
>> subscribe to each other's topics.  The brokers use networkTTL="3",  
>> conduitSubscriptions="false", dynamicOnly="false"  Messages are  
>> acknowledged immediately upon receipt by the clients.
>> 
>> 
>> PROBLEMS
>> 
>> 1) Client FN1 sees messages from FN2 and FN3 each delivered twice
>> 2) Client FN2 sees all messages from FN1 delivered 4 times and  
>> messages from FN3 delivered twice
>> 3) Client FN3 sees all messages from FN1 delivered 4 times and  
>> messages from FN2 delivered twice
>> The duplicates arrive approximately one second apart.
>> 
>> If I stop the brokers, zero out persistent stores, change the brokers  
>> to conduitSubscriptions="true" restart the brokers and I bring up  
>> FN1, FN2, and FN3 (in that order) then when FN3 comes up:
>> 
>> 1) At broker bFN2 I get the error " INFO   
>> DemandForwardingBridge         - Network connection between vm:// 
>> bFn2#4 and ssl://localhost/127.0.0.1:9124 shutdown due to a local  
>> error: javax.jms.JMSException: Durable consumer is in use for client:  
>> NC_bEn2_inboundbFn2 and subscriptionName: bFn2_ds.Union-3"
>> 2) At broker vFN3 I get the error  " INFO   
>> DemandForwardingBridge         - Network connection between vm:// 
>> bFn3#0 and ssl://localhost/127.0.0.1:9124 shutdown due to a local  
>> error: javax.jms.JMSException: Durable consumer is in use for client:  
>> NC_bEn2_inboundbFn3 and subscriptionName: bFn3_da.Availability"
>> 
>> Is this a misconfiguration problem or are these known problems?
>> 
>> 
>> Below are 3 of the configurations
>> 
>> --------------
>> Configuration for bEn2:
>> 
>> <beans>
>> 
>>    <bean  
>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
>> gurer"/>
>> 
>>    <broker brokerName="bEn2" useJmx="false" persistent="false"  
>> xmlns="http://activemq.org/config/1.0">
>> 
>>      <destinationPolicy>
>>        <policyMap>
>>          <policyEntries>
>> 
>>            <policyEntry topic="ds.>">
>>              <dispatchPolicy>
>>                <strictOrderDispatchPolicy/>
>>              </dispatchPolicy>
>>              <subscriptionRecoveryPolicy>
>>                <timedSubscriptionRecoveryPolicy  
>> recoverDuration="900000"/>
>>              </subscriptionRecoveryPolicy>
>> 
>>            </policyEntry>
>>            <policyEntry topic="da.>">
>>              <dispatchPolicy>
>>                <strictOrderDispatchPolicy/>
>>              </dispatchPolicy>
>>              <subscriptionRecoveryPolicy>
>>                <timedSubscriptionRecoveryPolicy  
>> recoverDuration="300000"/>
>>              </subscriptionRecoveryPolicy>
>>            </policyEntry>
>> 
>>          </policyEntries>
>>        </policyMap>
>>      </destinationPolicy>
>> 
>>      <persistenceAdapter>
>>        <journaledJDBC journalLogFiles="5"  
>> dataDirectory="$activemq.base/activemq-data"/>
>>      </persistenceAdapter>
>> 
>>      <transportConnectors>
>>        <!-- 9123 is for local access -->
>>        <!-- 9124 is used to bridge the activemq's to each other -->
>>        <transportConnector name="c1" uri="tcp://localhost:9123"/>
>>        <transportConnector name="c2" uri="ssl://localhost:9124"/>
>>      </transportConnectors>
>> 
>>      <networkConnectors>
>> 
>>        <!-- Cross Connection to Other Enterprise node -->
>>        <networkConnector name="entBridge1"
>>          uri="static:(ssl://localhost:9024)"
>>          dynamicOnly="false"
>>          conduitSubscriptions="false"
>>          networkTTL="3"
>>          prefetchSize="10"
>>        >
>> 
>>        </networkConnector>
>> 
>>        <!-- Connection to Forward Node 2 -->
>>        <networkConnector name="forward2"
>>          uri="static:(ssl://localhost:9324)"
>>          dynamicOnly="false"
>>          conduitSubscriptions="false"
>>          prefetchSize="10"
>>          networkTTL="3"
>>        >
>> 
>>        </networkConnector>
>> 
>>        <!-- Connection to Forward Node 3 -->
>>        <networkConnector name="forward3"
>>          uri="static:(ssl://localhost:9424)"
>>          dynamicOnly="false"
>>          conduitSubscriptions="false"
>>          prefetchSize="10"
>>          networkTTL="3"
>>        >
>>        </networkConnector>
>>      </networkConnectors>
>>    </broker>
>> </beans>
>> 
>> -------------
>> Configuration for bFn2:
>> 
>> <beans>
>> 
>>    <!-- Allows us to use system properties as variables in this  
>> configuration file -->
>>    <bean  
>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
>> gurer"/>
>> 
>>    <broker brokerName="bFn2" useJmx="false" persistent="false"  
>> xmlns="http://activemq.org/config/1.0">
>> 
>>      <destinationPolicy>
>>        <policyMap>
>>          <policyEntries>
>> 
>>            <policyEntry topic="ds.>">
>>              <dispatchPolicy>
>>                <strictOrderDispatchPolicy/>
>>              </dispatchPolicy>
>>              <subscriptionRecoveryPolicy>
>>                <timedSubscriptionRecoveryPolicy  
>> recoverDuration="900000"/>
>>              </subscriptionRecoveryPolicy>
>> 
>>            </policyEntry>
>>            <policyEntry topic="da.>">
>>              <dispatchPolicy>
>>                <strictOrderDispatchPolicy/>
>>              </dispatchPolicy>
>>              <subscriptionRecoveryPolicy>
>>                <timedSubscriptionRecoveryPolicy  
>> recoverDuration="300000"/>
>>              </subscriptionRecoveryPolicy>
>>            </policyEntry>
>> 
>>          </policyEntries>
>>        </policyMap>
>>      </destinationPolicy>
>> 
>>      <persistenceAdapter>
>>        <journaledJDBC journalLogFiles="5"  
>> dataDirectory="$activemq.base/activemq-data"/>
>>      </persistenceAdapter>
>> 
>>      <transportConnectors>
>>        <!-- 9023 is for local access -->
>>        <!-- 9024 is used to bridge the activemq's to each other -->
>>        <transportConnector name="c1" uri="tcp://localhost:9323"/>
>>        <transportConnector name="c2" uri="ssl://localhost:9324"/>
>>      </transportConnectors>
>> 
>>      <networkConnectors>
>> 
>>        <!-- Connection to Enterprise node 2 -->
>>        <networkConnector name="en2a"
>>          uri="static:(ssl://localhost:9124)"
>>          dynamicOnly="false"
>>          conduitSubscriptions="false"
>>          networkTTL="3"
>>          prefetchSize="10"
>>        >
>>        </networkConnector>
>> 
>>      </networkConnectors>
>>    </broker>
>> </beans>
>> 
>> -------------
>> Configuration for bFn3:
>> 
>> <beans>
>>    <bean  
>> class="org.springframework.beans.factory.config.PropertyPlaceholderConfi 
>> gurer"/>
>> 
>>    <broker brokerName="bFn3" useJmx="false" persistent="false"  
>> xmlns="http://activemq.org/config/1.0">
>> 
>>      <destinationPolicy>
>>        <policyMap>
>>          <policyEntries>
>> 
>>            <policyEntry topic="ds.>">
>>              <dispatchPolicy>
>>                <strictOrderDispatchPolicy/>
>>              </dispatchPolicy>
>>              <subscriptionRecoveryPolicy>
>>                <timedSubscriptionRecoveryPolicy  
>> recoverDuration="900000"/>
>>              </subscriptionRecoveryPolicy>
>>            </policyEntry>
>> 
>>            <policyEntry topic="da.>">
>>              <dispatchPolicy>
>>                <strictOrderDispatchPolicy/>
>>              </dispatchPolicy>
>>              <subscriptionRecoveryPolicy>
>>                <timedSubscriptionRecoveryPolicy  
>> recoverDuration="300000"/>
>>              </subscriptionRecoveryPolicy>
>>            </policyEntry>
>> 
>>          </policyEntries>
>>        </policyMap>
>>      </destinationPolicy>
>> 
>>      <persistenceAdapter>
>>        <journaledJDBC journalLogFiles="5"  
>> dataDirectory="$activemq.base/activemq-data"/>
>>      </persistenceAdapter>
>> 
>>      <transportConnectors>
>>        <!-- 9423 is for internal access -->
>>        <!-- 9424 is used to bridge the activemq's to each other -->
>>        <transportConnector name="c1" uri="tcp://localhost:9423"/>
>>        <transportConnector name="c2" uri="ssl://localhost:9424"/>
>>      </transportConnectors>
>> 
>>      <networkConnectors>
>> 
>>        <!-- Connection to Enterprise node 2 -->
>>        <networkConnector name="en2b"
>>          uri="static:(ssl://localhost:9124)"
>>          dynamicOnly="false"
>>          conduitSubscriptions="false"
>>          prefetchSize="10"
>>          networkTTL="3"
>>        >
>>        </networkConnector>
>>      </networkConnectors>
>>    </broker>
>> </beans>
>> 
>> 
>> 
>> 
>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/6-broker-node-network-results-in-many-duplicate-messages-or-%22durable-consumer-in-use%22-errors-tf4268320s2354.html#a13063065
Sent from the ActiveMQ - User mailing list archive at Nabble.com.