Oracleサービス名を解決できない
サービス名が解決できなかったことを示すOCIエラーORA-12514を受け取った場合は、次の内容を確認します。
- Oracle TNSPINGユーティリティを使用して、サービスが到達可能であることを確認します。
- DSN定義に設定したOracleIDが、TimesTenでキャッシュする表が含まれるOracleインスタンスのOracleサービス名と一致することを確認します。
- 定義したサービス名が存在することを確認します。Windows Oracleクライアントの場合は、Oracle Netコンフィギュレーション・アシスタントを使用してサービス名を構成します。Oracle Netコンフィギュレーション・アシスタントで、「Oracle Netの構成」→「ローカル」→「サービス・ネーミング」に移動し、Oracleサーバーを選択して、Oracleサーバーを識別するサービス名またはSIDがあることを確認します。サービス名を追加または変更した場合は、再起動する必要があります。
SQL*Plusを使用して、Oracleのキャッシュ・エージェントのユーザー名とパスワードを確認し、このサービス名が機能することを確認します。たとえば、次のように入力します。
ここで、scottはキャッシュ・エージェントのID、tigerはキャッシュ・エージェントのPWD、OracleHostはDSN定義で指定されているOracleIDです。
注意: キャッシュ・エージェントのアカウントは、通常のOracleユーザー・アカウントと異なってもかまいません。詳細は、『Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド』のOracleユーザーの作成と権限の設定に関する項を参照してください。
- TimesTenマシン上にtnsnames.oraのコピーが複数存在しないことを確認します。また、tnsnames.oraに対する権限も確認します。
- TimesTenをUNIXシステムで実行している場合は、ORACLE_HOME環境変数が、Oracle_installationディレクトリを指していることを確認します。
例: ORACLE_HOME=/products/oracle10g
- WindowsでOracle 9.0.xクライアントを使用している場合は、OracleID接続属性が正しく設定されていても、キャッシュ・エージェントを起動できないことがあります。OracleIDが正しく設定されていることを確認するには、ttIsqlでPassThrough=3の接続設定を使用して、Oracleに問合せを発行します。たとえば、次のようにします。
正常に接続できた場合、OracleIDは正しく設定されており、問題はバージョン9.0.xのOracleクライアントを使用していることになります。この問題は、Oracle 9.2.xクライアントにアップグレードすることで解決できます。