WSVR0009E: Error occurred during startup
Erro:
00000000 WsServerImpl E WSVR0009E: Error occurred during startup
com.ibm.ws.exception.RuntimeError: com.ibm.ws.recoverylog.spi.LogCorruptedException
at com.ibm.ws.tx.util.WASTMHelper.asynchRecoveryProcessingComplete(WASTMHelper.java:176)
at com.ibm.tx.util.TMHelper.asynchRecoveryProcessingComplete(TMHelper.java:49)
at com.ibm.tx.jta.RecoveryManager.recoveryFailed(RecoveryManager.java:1408)
at com.ibm.tx.jta.RecoveryManager.run(RecoveryManager.java:1940)
at java.lang.Thread.run(Thread.java:736)
Caused by: com.ibm.ws.recoverylog.spi.LogCorruptedException
at com.ibm.ws.recoverylog.spi.LogHandle.openLog(LogHandle.java:301)
at com.ibm.ws.recoverylog.spi.MultiScopeRecoveryLog.openLog(MultiScopeRecoveryLog.java:585)
at com.ibm.ws.recoverylog.spi.RecoveryLogImpl.openLog(RecoveryLogImpl.java:71)
at com.ibm.tx.jta.RecoveryManager.run(RecoveryManager.java:1884)
... 1 more
Descrição:
Ao tentar iniciar um servidor, ele vai iniciando, gera logs em SystemOut.log, mas repentinamente vemos o erro WSVR0009E e o servidor não inicia.
Um ponto importante a ser observado é a causa ( "Caused by: com.ibm.ws.recoverylog.spi.LogCorruptedException" ), pois este erro, WSVR0009E, é genérico e ocorre por inúmeros motivos. Mas a causa mostrada aqui, com.ibm.ws.recoverylog.spi.LogCorruptedException, indica que os arquivos de logs de transação estão corropidos.
Solução:
O ambiente mantem dois arquivos de log de transação, em duas pastas: tranlog e partnerlog.
Dentro delas há dois arquivos: log1 e log2.
WAS_HOME/profiles/<seu profile>/tranlog/<nome da celula>/<seu node>/<nome do servidor>/transaction/tranlog/log1
WAS_HOME/profiles/<seu profile>/tranlog/<nome da celula>/<seu node>/<nome do servidor>/transaction/tranlog/log2
WAS_HOME/profiles/<seu profile>/tranlog/<nome da celula>/<seu node>/<nome do servidor>/transaction/partnerlog/log1
WAS_HOME/profiles/<seu profile>/tranlog/<nome da celula>/<seu node>/<nome do servidor>/transaction/partnerlog/log2
Observe que são quatro arquivos por servidor (JVM): tranlog/log1, tranlog/log2, partnerlog/log1 e partnerlog/log2.
Procedimento:
1) Baixe o servidor (JVM);
2) Apague os quatro arquivos;
3) Inicie o servidor (JVM).
OBS: Caso o ambiente esteja em Cluster, pare todos os servidores do Cluster, apague os arquivos de logs em todos os servidores (JVM) de todos os nós. Este procedimento dever ser executado com o ambiente parado. Feito isto basta iniciar todos os servidores do Cluster.