You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2011/08/11 17:23:27 UTC

[jira] [Closed] (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:all-tabpanel ]

Timothy Bish closed AMQ-3194.
-----------------------------

    Resolution: Incomplete

No logs or test case provided to gain insight into the issue

> 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