質問

私は現在、私の会社では、誰もコンパイルされていないことをいくつかのPro * Cのコードを再コンパイルするに取り組んでいます。それはOKコンパイルですが、私は本番サーバーにコピーし、それを実行したときに、私はOracleエラーORA-12547取得しています(TNS:失われた連絡先)

任意のアイデア?

役に立ちましたか?

解決

ああ、それを考え出しました。 : - )

Cの実行可能ファイルは、サーバー上で直接実行されますが、接続環境を設定するスクリプトによって起動されません。すなわち、このような何かます:

export SHLIB_PATH=/oracleDatabaseSidHere/oracle/10.2/lib:/usr/lib:/oracleDatabaseSidHere/oracle/10.2/odg/lib
export ORACLE_BASE=/oracleDatabaseSidHere/oracle
export ORACLE_SID=oracleDatabaseSidHere
export ORACLE_HOME=/oracleDatabaseSidHere/oracle/10.2

# Set up the path and executable to run
PATH=.\:$PATH:$ORACLE_HOME/bin:/usrlocal/bin
PATH=$PATH:/path_to_application_logs

cd /path_to_application
application

他のヒント

これに関連して、私はちょうど私がPL / SQLで、私はVPN接続を使用していると同時に、Oracleデータベースに接続しようとしたとき、私は同じエラーORA-12547 TNSは、私のWindowsマシン上の接触を迷うことが判明しますオープンます。

私は、Linux、Oracleの11gR2の上で同様の問題を抱えていました。オラクルの所有者は、SQL * Plusを実行し、TNSまたはローカル接続のいずれかを介してでは得ることができます。 Oracle以外のユーザーは、TNS経由ではなく、ローカル接続でログインすることができます。

答えはORACLE_HOMEのファイルシステムが「nosuidを」マウントされたことで判明します。マウントオプションは私の問題を解決することを削除します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top