OracleをSQLServerに接続することは、Easysoft SQLServerODBCドライバーの最も一般的な使用例の1つです。この組み合わせをサポートするには、ドライバーのセットアップを支援するだけではありません。また、OracleHeterogeneousServicesがドライバーをロードすることを妨げるOracle構成の問題の解決を支援することも意味します。
最近、SQLServerODBCドライバーのお客様から次のエラーが報告されました。
ORA-28513: internal error in heterogeneous remote agent
顧客は、DG4ODBCトレースログを提供することができました。これにより、2つのことがわかりました。
- Oracle構成ファイル(.ora)は正しく設定されています。これらのファイルにエラー(ブラケットの欠落や無関係など)が含まれている場合、DG4ODBCトレースログは生成されません。
- DG4ODBCはunixODBCドライバーマネージャーをロードしようとさえしていませんでした。
Oracle DG4ODBCログが問題を識別せず(通常、アプリケーションによって報告されたORA-NNNNNエラーよりも多くの情報が常に含まれます)、ODBCログがまだ可能でないこのような状況では、strace<に到達します。 / code> または
truss
。例:
- Oracleユーザーとして2つのシェルセッションを開始します。
- シェル1で、Oracleリスナーを停止します。
- 次のコマンドでリスナーを起動します:
strace -f -o /tmp/easysoft.log -s 512 lsnrctl start
—または—
truss -wall -rall -o /tmp/easysoft.log lsnrctl start
- シェル2で、SQL * PLusを起動し、DG4ODBC /SQLServerデータベースリンクに対してSQLステートメントを実行します。
- シェル2で、Oracleリスナーを停止します。
ただし、システムライブラリトレースツール( truss
お客様の場合)それでも問題の原因は明らかになりませんでした。
結局、顧客が ORA_NLS10
を設定していたことが判明しました。 環境変数であり、これを行うことの副作用は、DG4ODBCが機能しなくなることでした。このマシンでは変数を設定する必要がなかったため、設定を解除してプロファイルファイルから削除することが、お客様の問題の解決策でした。