Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   ORA-12154: TNS: Angegebener Connect-Identifier konnte nicht aufgelöst werden (https://www.delphipraxis.net/157952-ora-12154-tns-angegebener-connect-identifier-konnte-nicht-aufgeloest-werden.html)

Glühwürmchen 31. Jan 2011 11:01

Datenbank: Oracle • Version: 10g • Zugriff über: ADOConnection

ORA-12154: TNS: Angegebener Connect-Identifier konnte nicht aufgelöst werden
 
Hallo Experten,

ich habe eine Delphi IntraWeb-Anwendung die auf eine Oracle-DB (XE) zugreifen soll.

Im DatenModul liegt eine ADOConnectionXE (=TADOConnection), deren ConnectionString folgendermaßen aussieht:
Zitat:

Provider=OraOLEDB.Oracle.1;Password=admin;Persist Security Info=True;User ID=System;Data Source=XE
Im ONCREATE-Event des Datenmoduls wird
Zitat:

ADOConnectionXE.Connected := TRUE;
aufgerufen.

Dabei kommt es zu der Fehlermeldung:
Zitat:

ORA-12154: TNS: Angegebener Connect-Identifier konnte nicht aufgelöst werden
Interessanterweise funktioniert der Zugriff aber zur Entwicklungszeit über ein Häkchen bei "ADOConnectionXE.Connected" problemlos.

Da sämtliche Hinweise zu diesem Thema, die man im Internet findet, behaupten, der Fehler läge in der "TNSNAMES.ORA", habe ich mein System (= alle Verzeichnisse in allen Laufwerken) nach dieser Datei durchsucht. Ich fand zwei. Beide sind identisch und korrekt.
Der TNSPING funktioniert.
Der gleiche ConnectionString in einer anderen Anwendung funktioniert auch.

Was könnte das sein?

s.h.a.r.k 31. Jan 2011 11:09

AW: ORA-12154: TNS: Angegebener Connect-Identifier konnte nicht aufgelöst werden
 
In dieser TNSNAMES.ORA steht sowas wie ein DNS-Einträg, über welcher Oracle einen Datenbank-Namen in eine IP umwandeln kann. Bei mir liegt die benutzte Datei unter:
Code:
E:\oracle\product\11.1.0\client_1\network\admin
und hat diesen Inhalt:
Code:
DATABASE_NAME =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.163.128)(PORT = 1521))
   )
 (CONNECT_DATA =
   (SERVICE_NAME = DATABASE_NAME)
 )
)
Die IP-Adresse zeigt auf eine VMware-Maschine, der ich die Datenbank aufgezwungen habe. Musste leider den wirklichen Namen der DB mit DATABASE_NAME ersetzen. Vielleicht hilft das ganze ja.

Glühwürmchen 31. Jan 2011 11:25

AW: ORA-12154: TNS: Angegebener Connect-Identifier konnte nicht aufgelöst werden
 
Nein, es hilft nicht wirklich weiter.
Die verwendete DB liegt auf dem gleichen Rechner.

Hier der entsprechende Eintrag der tnsnames.ora:
Code:
XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = inspiron-9400)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )
Aber wie bereits erwähnt:
- Zur Entwicklungszeit gelingt der Zugriff.
- Eine andere Anwendung kommt über die selbe Tnsnames.ora ebenfalls zum Ziel
???

jobo 31. Jan 2011 12:36

AW: ORA-12154: TNS: Angegebener Connect-Identifier konnte nicht aufgelöst werden
 
Neulich gab's hier mal den Fall, dass ein Antivirenprogramm dafür verantwortlich war.

Glühwürmchen 1. Feb 2011 16:42

AW: ORA-12154: TNS: Angegebener Connect-Identifier konnte nicht aufgelöst werden
 
Nach ca. 20 Stunden Fehlersuche habe ich ihn endlich dingfest gemacht!!

Das Datei-Verzeichnis, in dem die fertige, fehlerproduzierende Exe liegt unterscheidet sich von dem Datei-Verzeichnis, in dem die fertige, nicht fehlerproduzierende Exe liegt durch zwei runde Klammern im Namen!

Man entferne die Klammer und schon geht das.
:evil::twisted:


Edit: Ich habe es noch etwas genauer eingegrenzt:
Die runde "Klammer auf", ist kein Problem. Nur die runde "Klammer zu" stört den Connect! Es tut auch nichts zur Sache, ob die Klammer am Ende des Pfades, oder irgendwo dazwischen liegt.

Das "Version 3 (Webapplikation)" geht nicht,
das "Version 3 (Webapplikation" geht.

Glühwürmchen 2. Feb 2011 09:15

AW: ORA-12154: TNS: Angegebener Connect-Identifier konnte nicht aufgelöst werden
 
Noch ein Nachtrag zum Thema:
Bei Windows XP und bei Vista tritt dieser Fehler auf.
Bie Windows Server 2008 tritt er nicht auf.

Nicht getestet:
- Windows 7
- Windows Server 2003


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz