Falha ao iniciar ActiveMQ | Kahadb corrompido - Como resolver?
Problema
A falha ao iniciar o ActiveMQ geralmente ocorre quando algum arquivo da pasta kahadb corrompe, e isso deve-se, na maioria das vezes, a algum desligamento abrupto do servidor.
Solução/Procedimento
Para resolvermos esse problema há duas possíveis soluções:
Primeira solução:
Para resolver, devemos inicialmente adicionar o parâmetro ignoreMissingJournalfiles="true", no arquivo activemq.xml na pasta "conf" do Activemq.
Basta adicionar o parâmetro na tag "kahaDB" , conforme exemplo abaixo:
C:\Oobj\Aplicativos\JMS-Server\ActiveMQ\conf\activemq.xml
<mKahaDB directory="${activemq.data}/kahadb">
<filteredPersistenceAdapters>
<!-- kahaDB per destinations -->
<filteredKahaDB perDestination="true">
<persistenceAdapter>
<kahaDB
journalMaxFileLength="4mb"
cleanupInterval="150000"
checkForCorruptJournalFiles="true"
ignoreMissingJournalfiles="true"
indexCacheSize="40000"/>
</persistenceAdapter>
</filteredKahaDB>
</filteredPersistenceAdapters>
</mKahaDB>
Em seguida após adicionar o parâmetro, basta reiniciar o ActiveMQ e acompanhe os logs.
Segunda solução:
Caso o problema persista, analise os logs do Amq (C:\Oobj\Aplicativos\JMS-Server\ActiveMQ\data) e caso identificado algum registro relacionado a arquivo corrompido, apague os arquivos .redo da pasta C:\Oobj\Aplicativos\JMS-Server\ActiveMQ\data\kahadb
Para buscar esses arquivos, basta procurar por *.redo na pasta kahadb:
Após deletar os arquivos, reinicie o Amq e acompanhe os logs.
Observação
É recomendado que todos os serviços Oobj que utilizam o amq estejam parados durante este processo, importante analisar todos os serviços que estejam distribuídos em outros servidores (Motor de Impressão, Recepção, etc...) .
Referência
Sem referências.