java -jar autoupgrade.jar -config dbron.cfg -mode analyze
AutoUpgrade 24.8.241119 launched with default internal options
Processing config file ...
Internal Error has occurred. Please contact Oracle support.
java.lang.IllegalStateException
at oracle.commonx.config.rac.ClusterDetails.findCurrentInstance(ClusterDetails.java:396)
at oracle.commonx.config.rac.ClusterDetails.generateRacOneList(ClusterDetails.java:328)
at oracle.commonx.config.rac.ClusterDetails.getNodeInstanceInfos(ClusterDetails.java:307)
at oracle.commonx.config.rac.ClusterDetails.buildPojo(ClusterDetails.java:433)
at oracle.upgrade.autoupgrade.config.crafter.FullUpgCreator.craft(FullUpgCreator.java:757)
Revisando el log, se observaba que AutoUpgrade no llegaba siquiera a conectarse a la base de datos.
¿Qué podría estar pasando? Veamos.
El problema
En el archivo autoupgrade.log se señala que AutoUpgrade aborta al ejecutar el método findCurrentInstance, dentro de la clase ClusterDetails.
2025-01-07 08:20:35.043 WARNING null - Bootstrap.processCLIParams#83
java.lang.IllegalStateException
at oracle.commonx.config.rac.ClusterDetails.findCurrentInstance(ClusterDetails.java:396)
De Java no se mucho, pero me asaltó la idea de qué quizás se tratara de algo simple, por lo que busqué en la web un descompilador para poder darle una mirada a la rutina.
Encuentro que dentro de findCurrentInstance se busca si el servidor desde el cual estoy ejecutando AutoUpgrade (que es donde está corriendo la instancia activa de dbron) está dentro de la lista de servidores en los que puede correr la base de datos RON.
Hasta allí parece estar todo dentro de lo normal, entonces ¿por qué la falla?
En el mismo log, líneas antes del error, se observa que la lista de servidores candidatos es: node1 y node2.
2025-01-07 08:20:35.043 INFO RACOne detected - ClusterDetails.generateRacOneList#311
2025-01-07 08:20:35.043 INFO Starting - ClusterDetails.getCandidateServers#402
2025-01-07 08:20:35.043 INFO Candidate servers node1,node2 - ClusterDetails.getCandidateServers#405
2025-01-07 08:20:35.043 INFO Candidates [node1, node2] - ClusterDetails.generateRacOneList#315
¿Ya se dieron cuenta? Les doy unos minutos para que elaboren sus teorías….
Respuesta: AutoUpgrade está considerando como servidores válidos a node1 y node2, pero los servidores se llaman NODE1 y NODE2.
Como AutoUpgrade y la instancia activa de dbron está siendo ejecutado desde NODE1, esta cadena es buscada en la lista de servidores candidatos node1, node2, y desde luego no lo encuentra y aborta inmediatamente.
La solución
Es inevitable recurrir a Oracle Support y abrir un Service Request.
Adjunto toda la información disponible, y les señalo mis sospechas sobre la comparación de cadenas en mayúsculas y minúsculas, y en pocas horas me proporcionan un nuevo jar el cual ejecuto y listo, todo funciona correctamente!!!
java -jar autoupgrade_custom.jar -config dbron.cfg -mode analyze
AutoUpgrade 25.8.250108 launched with default internal options
Processing config file ...
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
1 Non-CDB(s) will be analyzed
Type 'help' to list console commands
upg> Job 100 completed
------------------- Final Summary --------------------
Number of databases [ 1 ]
Jobs finished [1]
Jobs failed [0]
Please check the summary report at:
/u01/app/oracle/cfgtoollogs/autoupgrade/dbron/cfgtoollogs/upgrade/auto/status/status.html
/u01/app/oracle/cfgtoollogs/autoupgrade/dbron/cfgtoollogs/upgrade/auto/status/status.log
Ya que tengo el descompilador de Java, le doy una nueva mirada al código y encuentro que ahora las cadenas a comparar son transformadas a minúsculas previo a la búsqueda (toLowerCase).
Con esto doy el caso por cerrado y continúo con las tareas de upgrade sin mayores problemas.
Aprovecho a agradecer al equipo de desarrollo de AutoUpgrade por el excelente servicio atendiendo mi pedido, son los mejores!!!