Budu předpokládat, že k určení dostupných databázových služeb používáte soubor tnsnames.ora. Pokud ano, chyby připojení obvykle vedou ke dvěma věcem.
-
Aplikace nemůže najít položku TNS, kterou jste zadali v řetězci připojení.
-
Záznam TNS byl nalezen, ale IP nebo hostitel není v souboru tnsnames.ora správná.
Abych rozšířil číslo 1 (což je podle mě váš problém). Když řeknete Oracle, aby se připojil pomocí něčeho jako:
sqlplus user/[email protected]
Služba je definována v souboru tnsnames.ora. Pokud se pokusím připojit ke službě, která není definována v mém tnsnames.ora, zobrazí se chyba, kterou dostanete:
[[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
Takže musíte zkontrolovat několik věcí:
- Existuje soubor tnsnames.ora – myslím, že ano, protože vaše konzole se může připojit
- Je v souboru záznam pro službu – myslím, že také ano, když se konzole připojuje
- Může aplikace najít tnsnames.ora?
Váš problém může být klidně číslo 3 - běží aplikace jako jiný uživatel, než když spouštíte konzoli?
Oracle hledá soubor tnsnames.ora v adresáři definovaném v proměnné prostředí TNS_ADMIN - Pokud běžíte jako různí uživatelé, pak možná není nastavena proměnná prostředí TNS_ADMIN, a proto nemůže soubor najít?