SSISデータフローコンポーネントでSQL Server Native Client 10を使用しているときに、通信リンクエラーが発生しました。
エラー:SSISエラーコードDTS_E_OLEDBERROR。 OLE DBエラーが発生しました。エラーコード:0x80004005。OLE DBレコードが利用可能です。ソース: "Microsoft SQL Server Native Client 10.0" Hresult:0x80004005説明:「通信リンク障害」。AnOLE DBレコードが利用可能です。ソース:「Microsoft SQL Server Native Client 10.0」Hresult:0x80004005説明:「TCPプロバイダー:指定されたネットワーク名はもうありません。利用できます。
そこで、SQL Server Native Client 10からMicrosoft OLEDB Provider for SQL Serverに変更し、正常に実行されることを期待しました。今回は、次のようなエラーが発生しました。
[Transacn_Tbl1 [737]]エラー:SSISエラーコードDTS_E_OLEDBERROR。 OLE DBエラーが発生しました。エラーコード:0x80004005。OLE DBレコードが利用可能です。ソース: "Microsoft OLE = SQL ServerのDBプロバイダー "Hresult:0x80004005説明:" SQL Serverで不特定のエラーが発生しました。サーバーによって接続が終了した可能性があります。 ".
[Transacn_Tbl1 [737]]エラー:SSISエラーコードDTS_E_INDUCEDTRANSFORMFAILUREONERROR。エラーコード0xC020907Bが発生したため、「入力「OLE DB宛先入力」(750)」が失敗し、「入力「OLE DB宛先入力」(750)」のエラー行の処理でエラー時の失敗が指定されています。指定されたコンポーネントの指定されたオブジェクトでエラーが発生しました。この前に、エラーに関する詳細情報が記載されたエラーメッセージが表示される場合があります。
これら2つのプロバイダーの違いは何ですか?どちらを使用すればよいですか?
この問題を解決する必要があるようです。SQLServerエージェントサービスのスタートアップアカウントのTempディレクトリのアクセス許可を変更する必要があります。このディレクトリのSQL Serverエージェントプロキシアカウントに読み取りアクセス許可と書き込みアクセス許可を付与します。
新しいSSIS
プロジェクトを実稼働環境にリリースした後、この問題に遭遇しました。
最初は、パッケージを正常に検証できましたが、パッケージを実行しようとすると、DTS_E_OLEDBERROR. Error code: 0x80004005.
メッセージ。
Servernameおよびpassword変数をsensitiveに設定してパッケージを検証しようとしましたが、この場合、検証も失敗しました。
環境変数を再度非機密に設定し、環境変数値を挿入した後、パッケージを検証して実行することができました。
私にはSSISDB
のメタデータが破損する場合があるようですが、残念ながらこの問題の原因を指摘することはできませんでした。
これが誰かの助けになることを願っています。この(やや不満な)ソリューションにたどり着く前に、多くのデバッグシナリオを経験しました。