Jeg vil antage, at du bruger filen tnsnames.ora til at specificere dine tilgængelige databasetjenester. Hvis det er tilfældet, kommer forbindelsesfejl normalt til to ting.
-
Applikationen kan ikke finde den TNS-post, du har angivet i forbindelsesstrengen.
-
TNS-posten blev fundet, men IP-adressen eller værten er ikke korrekt i filen tnsnames.ora.
For at uddybe nummer 1 (som jeg tror er dit problem). Når du beder Oracle om at oprette forbindelse ved hjælp af noget som:
sqlplus user/[email protected]
Tjenesten er defineret i filen tnsnames.ora. Hvis jeg forsøger at oprette forbindelse til en tjeneste, der ikke er defineret i min tnsnames.ora, får jeg den fejl, du får:
[[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
Så du skal tjekke et par ting:
- Er der en tnsnames.ora fil - jeg tror ja, fordi din konsol kan oprette forbindelse
- Er der en post i filen for tjenesten - jeg tror også ja, da konsollen opretter forbindelse
- Kan applikationen finde tnsnames.ora?
Dit problem kan meget vel være nummer 3 - kører applikationen som en anden bruger, end når du kører konsollen?
Oracle leder efter filen tnsnames.ora i den mappe, der er defineret i TNS_ADMIN-miljøvariablen - Hvis du kører som forskellige brugere, er TNS_ADMIN-miljøvariablen måske ikke indstillet, og den kan derfor ikke finde filen?