git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Abount "KahaDB Cleanup" of durable subscribers including pending messages


My understanding is that, KahaDB rewrite the KAHA_SUBSCRIPTION_COMMAND to 
latest journal file for ease of deletion the oldeset jorunal log, 
when the durable subscriber has no pending message. 

But, in the following case, "Durable Subscriber C and D" aren't rewritten 
to latest journal despite they have no pending message, because 
"Durable Subscriber B" has pending messages. 
I think that it's becoming difficult to delete the oldest journal. 

- Durable Subscriber A, B, C, D 
- Validation order of cleanup is "A, B, C, D" 
- "Durable Subscriber A" has no pending message 
- "Durable Subscriber B" has some pending messages 
- "Durable Subscriber C" has no pending message 
- "Durable Subscriber D" has no pending message 

the following code is partial cleanup routine, pasted from ActiveMQ 5.13.1
(MessageDatabase.java 
line.1705-1732) 
Why is the condition "gcCandidateSet.first() == dataFileId" necessary? 

It seem that it's blocking the KahaDB cleanup routine. 





--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html



( ! ) Warning: include(msgfooter.php): failed to open stream: No such file or directory in /var/www/git/apache-activemq-users/msg03740.html on line 98
Call Stack
#TimeMemoryFunctionLocation
10.0006364632{main}( ).../msg03740.html:0

( ! ) Warning: include(): Failed opening 'msgfooter.php' for inclusion (include_path='.:/var/www/git') in /var/www/git/apache-activemq-users/msg03740.html on line 98
Call Stack
#TimeMemoryFunctionLocation
10.0006364632{main}( ).../msg03740.html:0