You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Oleg Kiorsak (JIRA)" <ji...@apache.org> on 2011/03/01 06:25:36 UTC
[jira] Commented: (AMQ-3194) persistent messages disappear (lost!!)
upon expiry rather than ending up in a DLQ
[ https://issues.apache.org/jira/browse/AMQ-3194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13000726#comment-13000726 ]
Oleg Kiorsak commented on AMQ-3194:
-----------------------------------
this feels slightly similar to https://issues.apache.org/jira/browse/AMQ-2756
but it is substantially different
however, chances are it might be caused by the same underlying "audit" and "composite destinations" complications...
> 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