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
<span style="color: #e8bf6a;"><mKahaDB </span><span style="color: #bababa;">directory=</span><span style="color: #6a8759;">"${activemq.data}/kahadb"</span><span style="color: #e8bf6a;">><br /></span><span style="color: #e8bf6a;"><filteredPersistenceAdapters><br /></span> <span style="color: #808080;"><!-- kahaDB per destinations --><br /></span> <span style="color: #e8bf6a;"><filteredKahaDB </span><span style="color: #bababa;">perDestination=</span><span style="color: #6a8759;">"true"</span><span style="color: #e8bf6a;">><br /></span><span style="color: #e8bf6a;"> <persistenceAdapter><br /></span><span style="color: #e8bf6a;"> <kahaDB<br /></span> <span style="color: #bababa;">journalMaxFileLength=</span><span style="color: #6a8759;">"4mb"<br /></span> <span style="color: #bababa;">cleanupInterval=</span><span style="color: #6a8759;">"150000"<br /></span> <span style="color: #bababa;">checkForCorruptJournalFiles=</span><span style="color: #6a8759;">"true"<br /></span> <span style="color: #ffffff; background-color: #ff0000;">ignoreMissingJournalfiles=</span><span style="color: #6a8759;"><span style="background-color: #ff0000; color: #ffffff;">"true"</span><br /></span> <span style="color: #bababa;">indexCacheSize=</span><span style="color: #6a8759;">"40000"</span><span style="color: #e8bf6a;">/><br /></span><span style="color: #e8bf6a;"> </persistenceAdapter><br /></span><span style="color: #e8bf6a;"> </filteredKahaDB><br /></span><span style="color: #e8bf6a;"></filteredPersistenceAdapters><br /></span><span style="color: #e8bf6a;"></mKahaDB></span>
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.