Problembeschreibung und Umgebung
Heute stieß ich auf den folgenden sonderbaren Fehler, den ich gerne teilen möchte. Eine APEX-Installation in einem Oracle Real Application Cluster (RAC) läuft auf einem Knoten plötzlich auf einen Fehler. Die Browser-Seite zeigte einen 505-Fehler.Weitere Details zur Umgebung:
- Oracle Version: 10g (2-Knoten RAC)
- Oracle REST (APEX-Listener) 2.0.2
- Applikations-Server: Tomcat
Symptome
Im catalina.out des Tomcat-Servers stand die folgende Fehlermeldung:oracle.dbtools.common.jdbc.ConnectionPoolException: The pool named: apex is not correctly configured, error: I/O-Fehler: The Network Adapter could not establish the connection at oracle.dbtools.common.jdbc.ConnectionPoolException.badConfiguration(ConnectionPoolException.java:65) at oracle.dbtools.common.config.db.DatabaseConfig.badConfiguration(DatabaseConfig.java:166) at oracle.dbtools.common.config.db.DatabaseConfig.createPool(DatabaseConfig.java:187) at oracle.dbtools.common.config.db.DatabaseConfig.getConnection(DatabaseConfig.java:71) at oracle.dbtools.common.jdbc.ora.OraPrincipal.connection(OraPrincipal.java:69) at oracle.dbtools.apex.ModApexContext.getConnection(ModApexContext.java:372) at oracle.dbtools.apex.Procedure.getProcedure(Procedure.java:167) at oracle.dbtools.apex.OWA.validateProcedure(OWA.java:390) at oracle.dbtools.apex.security.Security.isValidRequest(Security.java:225) [...]
Lösung
Die Apex-Dateien aus dem
WEB-INF wurden gelöscht. Beim Neustart des Tomcats werden diese aus der
.war-Datei automatisch neu deployed. Dieser erste Neustart wurde als tomcat-User manuell ausgeführt. Dabei durften die Umgebungsvariablen $LANG und $NLS_LANG nicht gesetzt sein!
$ su - tomcat $ unset LANG $ unset NLS_LANG $ $CATALINA_HOME/bin/startup.sh
Anschließend war die APEX-Anwendung wieder über beide Knoten erreichbar.
Was genau das Problem war und wie es dazu kommen konnte, ließ sich anschließend natürlich kaum noch feststellen.
That's IT