Questo post riguarda WebLogic, non iniziare. Quindi lo sistemeremo.
Odio Java e il suo ecosistema. Alcuni giorni fa uno dei nostri WebLogic ha esaurito lo spazio su disco e il processo si è interrotto.
WebLogic non si avvia:il problema
Dopo aver ingrandito il nostro disco, partizione e filesystem, WebLogic si rifiuta ancora di iniziare con qualche strano messaggio:
Connecting to t3://localhost:7001 with userid weblogic ... This Exception occurred at some date and time. javax.naming.CommunicationException: Failed to initialize JNDI context, tried 1 time or times totally, the interval of each time is 0ms.. t3://localhost:7001: Destination 127.0.0.1, 7001 unreachable.; nested exception is:. <------>java.net.ConnectException: Connection refused (Connection refused); No available router to destination.; nested exception is:. <------>java.rmi.ConnectException: No available router to destination. [Root exception is java.net.ConnectException: t3://localhost:7001: Destination 127.0.0.1, 7001 unreachable.; nested exception is:. <------>java.net.ConnectException: Connection refused (Connection refused); No available router to destination.; nested exception is:. <------>java.rmi.ConnectException: No available router to destination.] --- Error al conectar al AdminServer, intentando iniciar... --- Already connected to a Node Manager Starting server AdminServer ... This Exception occurred at some date and time. weblogic.nodemanager.NMException: Received error message from Node Manager Server: [Server start command for WebLogic server 'AdminServer' failed due to: [Server failed to start up but Node Manager was not aware of the reason]. Please check Node Manager log and/or server
Per qualche motivo, non c'era un percorso per il locale macchina(!). Almeno Weblogic lo ha detto e Weblogic non si avvia. Nel caso avessi ricontrollato /etc/hosts per vedere se c'è una voce per localhost, e ovviamente ce n'è una.
Quell'errore su nessun router verso la destinazione ripetuto più e più volte. Controlliamo il log del gestore del nodo:
<INFO> <base_domain> <AdminServer> <Starting WebLogic server with command line: $DOMAIN/bin/startWebLogic.sh > <INFO> <base_domain> <AdminServer> <Working directory is '$DOMAIN'> <INFO> <base_domain> <AdminServer> <Server output log file is '$DOMAIN/servers/AdminServer/logs/AdminServer.out'> <INFO> <base_domain> <AdminServer> <The server 'AdminServer' with process id 5793 is no longer alive; waiting for the process to die.> <INFO> <base_domain> <AdminServer> <Server failed during startup. It may be retried according to the auto restart configuration.> <INFO> <base_domain> <AdminServer> <Server failed but will not be restarted because the maximum number of restart attempts has been exceeded> <WARNING> <Server start command for WebLogic server 'AdminServer' failed due to: [Server failed to start up but Node Manager was not aware of the reason]. Please check Node Manager log and/or server 'AdminServer' log for detailed information.
L'unica informazione utile sul registro del gestore nodi che ho trovato è il percorso del registro AdminServer. Quel registro del server di amministrazione è pieno di quei messaggi di debug java davvero lunghi che quasi non dicevano nulla. Ma in tutto quel testo qualcosa richiama la mia attenzione:
(...) <Critical> <WebLogicServer> <BEA-000362> <Server failed. Reason: Error reading replicas property file, the file may be corrupted - original Exception: java.lang.NumberFormatException with message: null> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED.> <Error> <WebLogicServer> <BEA-000383> <A critical service failed. The server will shut itself down.> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN.> (...)
Dopo aver cercato su Google per diversi minuti, ho trovato la causa, il nome del file e la soluzione a quell'errore:c'è questo file $DOMAIN/servers/AdminServer/data/ldap/conf/replicas.prop che era vuoto, non danneggiato nel mio caso, ma vuoto, vuoto come nella dimensione di zero byte. Ed è per questo che WebLogic non è partito.
WebLogic non si avvia - Soluzione
La soluzione? elimina o rinomina quel dannato file e prova a riavviare nuovamente WebLogic e quel file verrà ricreato. O forse non odio Java (forse), ma odio weblogic.
Quindi, sai come risolvere WebLogic non iniziare.