私は現在、私の会社の誰もコンパイルしたことがない Pro*C コードの再コンパイルに取り組んでいます。コンパイルは問題ありませんが、本番サーバーにコピーして実行すると、Oracle エラー ORA-12547 (TNS: lost contact) が発生します。
何か案は?
私は現在、私の会社の誰もコンパイルしたことがない Pro*C コードの再コンパイルに取り組んでいます。コンパイルは問題ありませんが、本番サーバーにコピーして実行すると、Oracle エラー ORA-12547 (TNS: lost contact) が発生します。
何か案は?
ああ、それを理解しました。:-)
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
Linux、Oracle 11gR2でも同様の問題がありました。Oracle 所有者は、SQL*Plus を実行し、TNS またはローカル接続を介してアクセスできます。Oracle 以外のユーザーは、TNS 経由でログインできましたが、ローカル接続ではログインできませんでした。
その答えは、ORACLE_HOME ファイルシステムが「nosuid」でマウントされていたことでした。そのマウントオプションを削除すると、問題が解決しました。
これに関連して、PL/SQL を使用して Oracle データベースに接続しようとすると、Windows マシンで同じエラー ORA-12547 TNS Loss contact が発生し、同時に VPN 接続が開いていることがわかりました。