I believe that the expiration task should go ahead and mark the message as acknowledged if it is expired for each subscription which should mean that message would no longer prevent a file from being garbage collected. One thing you can do is you can turn on debug logging for KahaDB to try and determine why it's not garbage collecting your log files. If you turn on trace logging for org.apache.activemq.store.kahadb.MessageDatabase, it will show some information about the files it is checking during the garbage collection task.
On Tue, Oct 27, 2015 at 6:36 AM, silvade <steve.desi...@gmail.com> wrote: > Hi Christopher, thanks for quick responds. > > I have some further information regarding my setup. > > Regarding the client ID and subscription ID, I am using the same value > (i.e. > "client-1") as the clientID and durableSubscriptionName. > > My applicationContext.xml file has set this as follows: > > > <bean id="amqConnectionFactory" > class="org.apache.activemq.ActiveMQConnectionFactory"> > <property name="clientID" value="client-1" /> > </bean> > ... > <bean id="darwinConsumer" > class="org.springframework.jms.listener.DefaultMessageListenerContainer" > destroy-method="stop"> > <property name="autoStartup" value="false"/> > <property name="concurrentConsumers" value="1"/> > <property name="maxConcurrentConsumers" value="1"/> > <property name="connectionFactory" ref="jmsConnectionFactory" /> > <property name="exceptionListener" ref="jmsConnectionFactory"/> > <property name="sessionTransacted" value="true" /> > <property name="subscriptionDurable" value="true"/> > <property name="durableSubscriptionName" value="client-1" /> > <property name="destinationName" value="local" /> > <property name="messageListener" ref="messageListenerAdapter" /> > <property name="recoveryInterval" value="1000" > <property name="sessionAcknowledgeModeName" > value="AUTO_ACKNOWLEDGE" /> > <property name="clientId" value="client-1" /> > </bean> > ... > > > I have noticed that the journal data in the kahadb directory is not removed > even after 48 hours. I was under the impression that when a message has > expired in the kahadb directory (e.g. db-X.log) , a job would run which > would remove the file (even if the durable subscriber was offline at the > time). It appears that the db-X.log files are not being removed even though > all the messages in them have expired and are eligible for removal. > > Thanks, > Steve > > > > -- > View this message in context: > http://activemq.2283324.n4.nabble.com/Message-getting-stuck-on-topic-leading-to-KahaDB-log-files-not-being-deleted-and-disk-running-out-of-tp4703370p4703402.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. >