Ik ga ervan uit dat je het bestand tnsnames.ora gebruikt om je beschikbare databaseservices op te geven. Als dat zo is, hebben verbindingsfouten meestal twee dingen.
-
De toepassing kan het TNS-item dat u hebt opgegeven in de verbindingsreeks niet vinden.
-
Het TNS-item is gevonden, maar het IP-adres of de host is niet correct in het bestand tnsnames.ora.
Om uit te breiden op nummer 1 (wat volgens mij jouw probleem is). Wanneer u Oracle vertelt om verbinding te maken met iets als:
sqlplus user/[email protected]
De service is gedefinieerd in het bestand tnsnames.ora. Als ik probeer verbinding te maken met een service die niet is gedefinieerd in mijn tnsnames.ora, krijg ik de foutmelding die je krijgt:
[[email protected] ~]$ sqlplus sodonnel/[email protected]
SQL*Plus: Release 11.2.0.1.0 Production on Mon Oct 31 21:42:15 2011
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
U moet dus een paar dingen controleren:
- Is er een tnsnames.ora-bestand - ik denk van wel omdat je console verbinding kan maken
- Is er een vermelding in het bestand voor de service - ik denk ook ja als de console verbinding maakt
- Kan de toepassing de tnsnames.ora vinden?
Uw probleem is misschien wel nummer 3 - werkt de applicatie als een andere gebruiker dan wanneer u de console uitvoert?
Oracle zoekt naar het bestand tnsnames.ora in de map die is gedefinieerd in de omgevingsvariabele TNS_ADMIN - Als u als verschillende gebruikers werkt, is de omgevingsvariabele TNS_ADMIN misschien niet ingesteld en kan het het bestand daarom niet vinden?