Hallo Marco!
Ich kümmere mich in meiner Antwort mal ausschließlich darum:
Ein Test mit dem Oracleeigenem Verbindungstest brachte
folgende Meldung:
ORA-12571: TNS: Fehler beim Paket-Schreiber
So lange du nämlich keine „native“ Oracle-Verbindung herstellen kannst halte ich eine Verbindung über ODBC für sehr unwahrscheinlich.
Welchen „Oracleeigenen Verbindungstest“ verwendest du? Command line „tnsping“ oder irgendein (nach meinem dafürhalten unnötiges) Klickibunti-Ding?
Falls nicht tnsping: Gib mal auf der Command line folgendes ein:
tnsping $DB
wobei du für $DB den logischen (lokalen) Namen der Datenbank angibst. Würde die Verbindung zum Listener (sic!) funktionieren, käme dabei in etwa folgendes raus:
TNS Ping Utility for 32-bit Windows: Version 8.1.7.2.0 - Production on 05-FEB-2004 10:41:10
(c) Copyright 1997 Oracle Corporation. All rights reserved.
Attempting to contact (ADDRESS=(PROTOCOL=TCP)(HOST=hollodrio)(PORT=1521))
OK (170 msec)
Wenn das schon mal nicht geht, dann siehst du dir die Parameter an, mit denen versucht wird die Verbindung herzustellen. Wenn die richtig sind (unbedingt auch die Verbindung zum Host kontrollieren, bei TCP/IP z.B. mittels ping), dann bleibt dir kaum etwas übrig als ans Eingemachte zu gehen: Logfiles prüfen bzw. Tracen.
Die Logfiles:
Standardmässig ist das das File sqlnet.log im Verzeichnis, in dem die Applikation gestartet wird, die den Fehler verursacht hat. Geändert werden kann das in der sqlnet.ora, und zwar mittels der Parameter LOG_FILE_CLIENT (hier gibst du einen Dateinamen an) und LOG_DIRECTORY_CLIENT (das Verzeichnis…).
Solltest du im Logfile also etwas finden, das evtl. mehr Aufschlüsse zum Fehler gibt, dann nix wie her damit (bitte nicht die gesammelten Fehler der letzten drei Jahre, nur den letzten Fehlerstack).
Weiterhelfen könnte uns auch ein Tracen des tnspings (vorausgesetzt der geht auch schief, wenn der funkt, dann müssen wir wohl wo anders weitersuchen [vermutlich am Server]).
Den Trace vom tnsping aktivierst du mit folgenden Einträgen im sqlnet.ora:
TNSPING.TRACE_DIRECTORY=$IrgendeinDirectoryDasEsAuchGibt
TNSPING.TRACE_LEVEL=admin
Danach den tnsping nochmal (1x!) ausführen und dann immer her mit dem
Trace (File heißt tnsping.trc).
Das sollte für’s erste mal reichen.
Gruß,
Martin