Asumiré que está utilizando el archivo tnsnames.ora para especificar los servicios de base de datos disponibles. Si es así, los errores de conexión generalmente se reducen a dos cosas.
-
La aplicación no puede encontrar la entrada TNS que especificó en la cadena de conexión.
-
Se encontró la entrada TNS, pero la IP o el host no son correctos en el archivo tnsnames.ora.
Para ampliar el número 1 (que creo que es su problema). Cuando le dices a Oracle que se conecte usando algo como:
sqlplus user/[email protected]
El servicio se define en el archivo tnsnames.ora. Si intento conectarme con un servicio que no está definido en mi tnsnames.ora, aparece el error:
[[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
Por lo tanto, debe verificar algunas cosas:
- ¿Hay un archivo tnsnames.ora? Creo que sí porque su consola puede conectarse
- ¿Hay una entrada en el archivo para el servicio? Creo que también sí, ya que la consola se conecta
- ¿Puede la aplicación encontrar tnsnames.ora?
Su problema bien puede ser el número 3:¿la aplicación se ejecuta como un usuario diferente que cuando ejecuta la consola?
Oracle busca el archivo tnsnames.ora en el directorio definido en la variable de entorno TNS_ADMIN. Si está ejecutando como usuarios diferentes, entonces tal vez la variable de entorno TNS_ADMIN no está configurada y, por lo tanto, no puede encontrar el archivo.