tnsnames.oraファイルを使用して、使用可能なデータベースサービスを指定していると仮定します。その場合、接続エラーは通常2つになります。
-
アプリケーションは、接続文字列で指定したTNSエントリを見つけることができません。
-
TNSエントリが見つかりましたが、tnsnames.oraファイルのIPまたはホストが正しくありません。
1番を拡張する(これがあなたの問題だと思います)。次のようなものを使用して接続するようにOracleに指示する場合:
sqlplus user/[email protected]
このサービスは、tnsnames.oraファイルで定義されています。 tnsnames.oraで定義されていないサービスに接続しようとすると、次のエラーが発生します。
[[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
したがって、いくつかのことを確認する必要があります:
- tnsnames.oraファイルはありますか-コンソールが接続できるので、そうだと思います
- サービスのファイルにエントリがありますか?コンソールが接続されているので、はいと思います
- アプリケーションはtnsnames.oraを見つけることができますか?
問題は3番目かもしれません-アプリケーションは、コンソールを実行するときとは異なるユーザーとして実行されますか?
Oracleは、TNS_ADMIN環境変数で定義されたディレクトリでtnsnames.oraファイルを検索します-異なるユーザーとして実行している場合は、TNS_ADMIN環境変数が設定されていないため、ファイルが見つかりませんか?