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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top