persistent messages disappear (lost!!) upon expiry rather than ending up in a 
DLQ
---------------------------------------------------------------------------------

                 Key: AMQ-3194
                 URL: https://issues.apache.org/jira/browse/AMQ-3194
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.4.2
         Environment: Java 1.6, Sun Solaris
            Reporter: Oleg Kiorsak
            Priority: Critical


Here is the setup:
 
ActiveMQ 5.4.2 using JDBC persistence (MSSQLServerExpress DB)... (just one 
server connect - no "master/slave cluster"...)
 
1000 simulated clients send persistent messages every 10 seconds - 10 messages 
each
 
so in total they enqueue 10000 messages into INBOUND queue (via a virtual 
destination 'MDT.INBOUND' that does a bit of "forking")
<compositeQueue name="MDT.INBOUND" forwardOnly="true">
<forwardTo>
                                                <queue physicalName="INBOUND" />
                                                <queue 
physicalName="ARCHIVING-DST" />
                        </forwardTo>
 
 
So within a minute or so - I can see 10000 messages all in 'INBOUND' via SQL 
Server queries 
messages TTL is set to 5 mins, so within 5 mins messages start expiriring...
 
BUT only some messages would end up in ActiveMQ.DLQ, whilst the others seem to 
disappear in thin air (!!)
 
interestingly, the JMX counters (e.g. via jConsole) will actually show the 
missing number of messages as being in the 'INBOUND' queue
but as a matter of fact they are NOT there (which can be confirmed by SQL 
queries as well)
 
this happens sporadically... i.e. sometimes it would actually work ok - as 
expected - all expired messages ending up in DLQ,
but other times always about a hundred or so messages were missing
 
 
For example I just ran this 5 times - 2 times then restarted ActiveMQ (very 
"gently" - via the 'stop' command in jConsole) and ran again twice
 
Here are the numbers (see attached xls as well)
 
                                                After ActiveMQ RESTART          
                
                After 1st run           After 2nd run           and 3rd run     
        after 4th run           after 5th run
                                                                                
JMX     Archiving-Q' QueueSize  10000           20000           30000           
40000           50000
        ActiveMQ.DLQ 'QueueSize 10000           19589           29589           
39589           48848
        INBOUND' QueueSize      0               411     ??      0       hm... 
were did those 411 go?!!  0               741
        INBOUND' EnqueCount     10000           20000           10000           
20000           30000
        INBOUND' DequeCount     10000           19589           10000           
20000           29259
        INBOUND' ExpiredCpount  10000           19589           10000           
20000           29259
                                                                                
DB      Archiving-Q     10000           20000           30000           40000   
        50000
        ActiveMQ.DLQ    10000           19589           29589           39589   
        48848
        INBOUND 0               0               0                               0
                                                                                
 


-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to