2

SQLエージェントを介してSSISパッケージを実行すると、このエラーが発生します。接続「ORACLEADO.NET」の取得に失敗しました。接続が正しく構成されていないか、この接続に対する適切な権限がない可能性があります。

SQLエージェントユーザーとしてログオンし、ssisパッケージを直接実行すると、問題ありません。その後、SQLエージェントジョブを介して実行すると、失敗します。

このトピックについてよく読んだのですが、ログイン方法やプロキシアカウントの設定などに関するアドバイスがたくさんあるようですが、どれも役に立ちませんでした。

ADO.NET接続を使用してOracleデータベースにログオンしています。接続文字列は次のとおりです(データソース、ユーザーID、およびパスワードが変更されています)。

データソース=DATASOURCE;ユーザーID=ユーザーID;パスワード=パスワード;永続的なセキュリティ情報=True;Unicode = True;

パッケージ構成を使用してレジストリ設定からこれをロードしています。正しい文字列を取得していることを確認するために、それを一時ログテーブルに書き込んでいます。正しいレジストリ設定から必要な文字列を確実に取得しています。

PL / SQL開発者を通じてOracleログイン資格情報をテストしましたが、問題なくログインできます。

私が知る限り、Oracle接続に明示的なユーザー名とパスワードを使用しているので、SSIパッケージが誰として実行されているかは問題ではありません。私が見ることができる唯一の失敗点は、レジストリからの情報の読み取りですが、それは問題ないようです。

私は本当に困惑しています。告白しなければなりません。ここにいる素晴らしい専門家の何人かが提供できる助けをいただければ幸いです。

どうもありがとう、ジェームズ

4

2 に答える 2

2

かなりの苦痛の後、これを追跡しました。

ある環境では正常に動作していましたが、別の環境では正常に動作していなかったため、Process Monitor( http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx )を起動し、SQLAgentジョブでパッケージを実行して比較しました。各環境でどのシステムエンティティがヒットしたか。

障害が発生した環境では、一括転送操作の時点で、パッケージはOracle 11クライアントDLLを取得しようとした後、ハングしました。

これがインストールされていることはわかっていましたが、DLLパスはシステム環境の設定でした。さらに調査した結果、Oracle Clientのインストール以降、サーバーが再起動されておらず、SQLServerエージェントプロセスがリサイクルされていないことが判明しました。

はい、信じられますか?古いヘルプデスクの修正「コンピュータを再起動できますか?」働いた。

はぁ!

于 2009-11-12T14:49:49.573 に答える
1

SQLサーバーインスタンスに保存する前にOracleに接続するパッケージを実行しているクライアントで問題が発生しました。私たちが見つけた回避策は、パッケージのプロパティ、保護レベルを「機密データを保存しない」に変更することでした。セキュリティ上の理由から、SQLサーバーのudfによって復号化されたパッケージ構成のユーザー名とパスワードを暗号化しました。もちろん、暗号化の部分全体を試す前に、値を暗号化せずにユーザー名とパスワードをパッケージ構成に入れて、保護レベルの設定を変更することが特定の問題の解決策であるかどうかを確認することをお勧めします。これがお役に立てば幸いです。

于 2009-11-10T02:41:56.117 に答える