Oracle Pro * C ORA-12547
-
13-09-2019 - |
Frage
Ich arbeite an Re-Kompilierung einiger Pro * C-Code, niemand in meiner Firma zur Zeit jemals zusammengestellt. Es kompiliert OK, aber wenn ich es auf dem Produktionsserver kopieren und ausführen ich erhalte Oracle Fehler ORA-12547 (TNS: Kontakt verloren)
Irgendwelche Ideen?
Lösung
Oh, es herausgefunden. : -)
Die C ausführbare Datei ausgeführt wird, nicht direkt auf dem Server, sondern über ein Skript gestartet, das die Verbindungsumgebung einrichtet. das heißt so etwas wie folgt aus:
export SHLIB_PATH=/oracleDatabaseSidHere/oracle/10.2/lib:/usr/lib:/oracleDatabaseSidHere/oracle/10.2/odg/lib
export ORACLE_BASE=/oracleDatabaseSidHere/oracle
export ORACLE_SID=oracleDatabaseSidHere
export ORACLE_HOME=/oracleDatabaseSidHere/oracle/10.2
# Set up the path and executable to run
PATH=.\:$PATH:$ORACLE_HOME/bin:/usrlocal/bin
PATH=$PATH:/path_to_application_logs
cd /path_to_application
application
Andere Tipps
Damit verbunden, ich habe gerade herausgefunden, dass ich den gleichen Fehler ORA-12547 TNS Kontakt auf meinem Windows-Rechner verloren gehen, wenn ich versuche mit PL / SQL zu einer Oracle-Datenbank zu verbinden und gleichzeitig die ich eine VPN-Verbindung habe offen.
Ich hatte ein ähnliches Problem auf Linux, Oracle 11gR2. Oracle Besitzer können SQL * Plus laufen und entweder über TNS oder lokale Verbindung bekommen. Nicht-Oracle-Benutzer könnte über TNS einzuloggen, aber nicht als lokale Verbindung.
Es stellt sich heraus die Antwort war, dass das ORACLE_HOME-Dateisystem gemountet wurde „nosuid“. Das Entfernen der Mount-Option mein Problem gelöst.