You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Christopher L. Shannon (JIRA)" <ji...@apache.org> on 2017/02/06 14:30:42 UTC

[jira] [Closed] (AMQ-6333) queue messages lost during failover

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

Christopher L. Shannon closed AMQ-6333.
---------------------------------------
    Resolution: Won't Fix

LevelDB has been deprecated and is no longer supported.

> queue messages lost during failover
> -----------------------------------
>
>                 Key: AMQ-6333
>                 URL: https://issues.apache.org/jira/browse/AMQ-6333
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: activemq-leveldb-store
>    Affects Versions: 5.13.2
>         Environment: a 3 node cluster running on RHEL 6.7
>            Reporter: tai-jen gordon
>
> In this 3 node cluster running ActiveMQ 5.13.2 and levelDB, we tested failover with a producer that generates 200 AccountIds ( from 0 to 199 ) , and expected that the consumer would receive the same number of messages after a triggered failover ( kill -9 master-process-id). 
> The producer used syncSend, the consumer used transactional session, and the destination is a queue.
> We printed out the message sequence and its corresponding accountID on both the producer and the consumer consoles after a message was successful send and receive respectively.
> The result showed that the producer sent 199 messages ( one failed due to fail over), but the consumer received much less messages than 199.
> For example, on the consumer console, before the failover we had
>           ......
>           received  = 13   accountid=12
>           received  = 14    accountid=13
> then, right after the failover the consumer console had 
>          received  = 15    accountid=44    
>          received  = 16     accountid=45
>          ...
> Notice that accounted from 14 to 43 are ever lost. 
> We scan the broker logs of both the new and old master and noticed that the pagedInPendingDispatch.size in the "old" master had value = 30 which matches the number of lost messages. We repeated this test few  times and each time this size matched the number of lost messages. 
> The configuration we used is listed below:
> Broker configuration: 
>  <broker xmlns="http://activemq.apache.org/schema/core" brokerName="broker" dataDirectory="${activemq.data}" useJmx="true" useShutdownHook="false" shutdownOnMasterFailure="true" systemExitOnShutdown="true" systemExitOnShutdownExitCode="200">
>         <destinationPolicy>
>             <policyMap>
>               <policyEntries>
>                 <policyEntry topic=">" > 
>                     
>                   <pendingMessageLimitStrategy>
>                     <constantPendingMessageLimitStrategy limit="1000"/>
>                   </pendingMessageLimitStrategy>
>                 </policyEntry>
> <policyEntry queue=">" useCache="false" expireMessagesPeriod="0" /> 
>               </policyEntries>
>             </policyMap>
>         </destinationPolicy> <persistenceAdapter>
>             <replicatedLevelDB 
>               directory="${activemq.base}/leveldb-data" 
>               replicas="3" 
>               bind="tcp://0.0.0.0:0" 
>               zkAddress="test1:2181,test2:2181,test3:2181" 
>               zkPath="/activemq/leveldb" 
>               sync="quorum_disk" 
>               paranoidChecks="true" 
>               logCompression="snappy" 
>              />
>         </persistenceAdapter>



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)