activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nazario Irizarry <...@mitre.org>
Subject 6 broker node network results in many duplicate messages or "durable consumer in use" errors
Date Tue, 14 Aug 2007 16:19:57 GMT
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>






Mime
View raw message