Skip to main content

Fehlersammlung

TNS-03505: Name konnte nicht aufgelöst werden
ORA-12154: TNS: angegebener Connect-Identifier konnte nicht aufgelöst werden

Beschreibung:

Beide Meldungen treten auf, wenn die tnsnames.ora nicht gelesen werden kann oder ein Eintrag fehlerhaft ist.

Verbindungstest erfolgreich:

Windows Powershell
PS C:\> Test-NetConnection db123.foo.de -port 1521
 
ComputerName     : db123.foo.de
RemoteAddress    : 10.21.39.40
RemotePort       : 1521
InterfaceAlias   : Ethernet0
SourceAddress    : 10.21.18.22
TcpTestSucceeded : True
 
Linux
telnet db123.foo.de 1521
Trying 10.21.39.40...
Connected to db123.foo.de.
Escape character is '^]'.

Per sqlplus und Angabe des Schemas funktioniert die Anmeldung: 

sqlplus xxxxx/xxxxxx@'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db123.foo.de)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=KVASYP)))'

Ohne Schema nicht, obwohl in der tnsname.ora der Eintrag für KVASYP hinterlegt war.

sqlplus xxxxx/xxxxxx@KVASYP

Lösung:

In der sqlnet.ora wird durch den Eintrag NAMES.DEFAULT_DOMAIN = world definiert, dass in der tnsnames.ora
die Schemas mit *.world enden müssen, was bei KVASYP nicht der Fall war.

sqlnet.ora
SQLNET.EXPIRE_TIME = 0
NAMES.DEFAULT_DOMAIN = world
NAME.DEFAULT_ZONE = world
SQLNET.CRYPTO_SEED = "123456789"
NAMES.DIRECTORY_PATH = (TNSNAMES)

Die Domain muss hinter dem Schema-Eintrag erfolgen.

tnsname.ora
...
KVASYP.world =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db123.foo.de)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = KVASYP))
  )
...