Presumo che tu stia utilizzando il file tnsnames.ora per specificare i servizi di database disponibili. In tal caso, gli errori di connessione di solito si riducono a due cose.
-
L'applicazione non riesce a trovare la voce TNS specificata nella stringa di connessione.
-
La voce TNS è stata trovata, ma l'IP o l'host non sono corretti nel file tnsnames.ora.
Per espandere il numero 1 (che penso sia il tuo problema). Quando dici a Oracle di connettersi usando qualcosa come:
sqlplus user/[email protected]
Il servizio è definito nel file tnsnames.ora. Se provo a connettermi con un servizio che non è definito in mio tnsnames.ora, ottengo l'errore che ottieni:
[[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
Quindi devi controllare alcune cose:
- C'è un file tnsnames.ora - Penso di sì perché la tua console può connettersi
- C'è una voce nel file per il servizio? Penso anche di sì quando la console si connette
- L'applicazione può trovare tnsnames.ora?
Il tuo problema potrebbe essere il numero 3:l'applicazione viene eseguita come un utente diverso rispetto a quando esegui la console?
Oracle cerca il file tnsnames.ora nella directory definita nella variabile di ambiente TNS_ADMIN - Se stai eseguendo come utenti diversi, forse la variabile di ambiente TNS_ADMIN non è impostata e quindi non riesce a trovare il file?