web-dev-qa-db-ja.com

パッケージにSSIS接続が見つかりません

私はSSISプログラミングに慣れていないので、SSISパッケージの展開に問題があります。

このパッケージは私のPCで正常に動作し、必要なことはすべて行いますが、デプロイすると接続文字列が見つかりません。

エラーは次のとおりです。

コード:0xC001000Eソース:説明:接続「{DA7CD38D-F6AA-4B06-8014-58BEE5684364}」が見つかりません。このエラーは、特定の接続要素が見つからないときにConnectionsコレクションによってスローされます。終了エラー

エラー:2012-08-09 00:21:06.25コード:0xC001000Eソース:パッケージの説明:接続 "{DA7CD38D-F6AA-4B06-8014-58BEE5684364}"が見つかりません。このエラーは、特定の接続要素が見つからないときにConnectionsコレクションによってスローされます。終了エラー

エラー:2012-08-09 00:21:06.25コード:0xC001000Eソース:パッケージの説明:接続 "{DA7CD38D-F6AA-4B06-8014-58BEE5684364}"が見つかりません。このエラーは、特定の接続要素が見つからないときにConnectionsコレクションによってスローされます。終了エラー

エラー:2012-08-09 00:21:06.25コード:0xC00291EBソース:SQLタスクの実行SQLタスクの説明の説明:接続マネージャー "{DA7CD38D-F6AA-4B06-8014-58BEE5684364}"は存在しません。終了エラー

エラー:2012-08-09 00:21:06.25コード:0xC0024107ソース:SQLタスクの実行説明:タスクの検証中にエラーが発生しました。終了エラーDTExec:パッケージ実行はDTSER_FAILURE(1)を返しました。開始:00:21:04終了:00:21:06経過:1.888秒。パッケージの実行に失敗しました。ステップは失敗しました。

20
Schewns

Ssisパッケージはdeletedまたはrenamedであった可能性のある他の接続を指しているようです。SSISコンポーネントを開いて、接続マネージャーにある正しい接続を指します。

SSISパッケージコンポーネントをコピーして新しいパッケージを作成した場合、または接続の名前を変更した場合、またはxml configファイルで定義された古い接続を使用しているコンポーネントがまだある場合に発生します( throwing error)。構成にXMLを使用している場合は、新しいXMLをデプロイしてください。

21
praveen

私はパーティーに少し遅れましたが、同じエラーを経験しながらこのスレッドに出くわし、異なる解決策を見つけました。

SSIS 2012パッケージを作成すると、ソリューションエクスプローラーウィンドウにプロジェクトレベルで接続マネージャーフォルダーが表示されます。これは、接続を作成する最も論理的な場所のようであり、プロジェクト内の任意のパッケージで使用できる接続を作成するときに使用する必要があります。パッケージレベルではなく、プロジェクトレベルに含まれています。

Dtexecを使用してdtsxパッケージを実行すると、上記と同じエラーが発生しました。これは、接続がパッケージに含まれていないためです(プロジェクトのみ)。私の解決策は、パッケージデザイナーに移動し、[接続マネージャー]ウィンドウでプロジェクトレベルの接続(「(プロジェクト)」プレフィックスを使用して表示)を右クリックし、[パッケージ接続に変換]を選択することでした。これにより、実際のdtsxパッケージに接続が埋め込まれます。これは私の問題を軽減しました。

20
jhughes

これは、接続マネージャーがパッケージではなくVisual Studioプロジェクトで定義され、パッケージで参照される新しいSSIS 2012「共有接続マネージャー」の概念を使用する場合にも発生するようです。 SQLエージェントまたはDTEXECを介して実行すると、同じエラーメッセージが表示されます。

私はまだその解決策を見つけていませんが、誰かがそれを以前に経験したことがあれば、フィードバックを得たいと思っています。

4
Roberto Andrade

この問題を投稿していただきありがとうございます。

1つの解決策:WindowsエクスプローラーでXML形式でパッケージを開き、見つからない接続マネージャーのGUIDを探します。私の場合、破損したEventHandler接続が破損していました。これと同じです。接続マネージャーは制御フローで使用されていましたが、何らかの理由で破損していなかったため、UIを介してユーザーに明らかではありませんでした。XMLがイベントハンドラー接続マネージャーを指しているため、破損した接続マネージャーIDを参照していたソースとターゲットにすばらしいRED Xを表示し、正しいマネージャーに再ポイントし、pkgを再構築して保存しました。

キーは、XML形式でpkgを開き、コード内でGUIDを見つけて、どこで失敗したかを確認することでした。UIでそれに対する有効な参照が見つからなかった場合、 XML接続の名前をXML内の別の既知のGUIDに変更し、UIに移動して再度ポイントするか、完全に削除します。

がんばろう。

4
Michael Pegurri

私の場合、問題は以前使用されていなかった古い接続を指すログプロバイダーのポイントであることがわかりました。この問題を解決するには、[パッケージエクスプローラー]タブをクリックし、[ログプロバイダー]をクリックして、古いログプロバイダーを削除します。これが誰かの助けになることを願っています。

3
Elcio Firmiano

接続の削除または削除に関する前述のコメントは、絶対に可能性です。ただし、(パッケージレベルの接続ではなく)プロジェクトレベルの接続を使用するパッケージを呼び出そうとすると、このエラーが発生することもあります。

プロジェクトレベルの接続を使用していて、dtexecを使用したい場合は、方法があることを恐れないでください。パッケージレベルの接続に変換することはお勧めしません(正当な理由でプロジェクトレベルの接続として作成した場合)。

SSISプロジェクトを展開する必要があります。 SSISサーバーでカタログを作成する必要があります( https://msdn.Microsoft.com/en-us/library/gg471509.aspx )。カタログを取得したら、SSISプロジェクトで[プロジェクト]-> [展開]を選択し、ウィザードに従います。結果は、SSISソリューションフォルダー/ bin/Developmentに生成された* .ispacファイルになります。

今度はmoneyコマンドの場合、単純なdtexec.exe/f "package.dtsx"でパッケージを呼び出す代わりに

代わりに次のように呼び出します:dtexec.exe/project "<...>/project.ispac"/package "<...>/package.dtsx"

Ispacファイルには、パッケージの実行に必要なプロジェクトレベルの接続情報が含まれており、設定する必要があります。

2
Rachelle

パッケージは金曜日に正常に機能し、TFSにチェックインして帰宅します。月曜日に開いて、どこでもエラーを取得します。 「接続マネージャー変数$ project._connectionstringが変数コレクションに見つかりませんでした」。

接続を編集して接続をテストしますが、問題はありません。 ConnMngerは、ソリューションの接続マネージャーリストにあります。この接続マネージャに接続されているTARGETオブジェクトを開き、MAPPINGSをクリックすると、上記のエラーが表示されます。マッピングのどこにも接続マネージャー変数への参照はありません。

これを修正するには、[接続マネージャー]ウィンドウで接続マネージャーを右クリックし、[パラメーター化]を選択する必要があります。必要に応じてオプションを入力します-

プロパティ:ConnectionString使用Exisgintパラメーター:$ Project :: ConnMgrName_ConnectionString OR Create New PArameter:follow the options

この接続マネージャーがパラメーター化されると、すべてが機能します。 Conn MangerはConn Mangerタブに存在していましたが、Conn Mgrは既にソリューションエクスプローラーにリストされており、2日前には問題なく機能していました。

奇数。なんでも。マイクロソフトはマイクロソフトです。 SQL ServerはSQL Serverです。毒を選択してください。

これが次の人の時間の節約に役立つことを願っています。

0
Michael Pegurri

SSDT 2013を使用してVSでSSDT 2010/SSIS 2012プロジェクトを開こうとすると、このエラーを受け取りました。プロジェクトを開くと、すべてのパッケージを移行するように求められました。続行することを許可すると、すべてのパッケージがこのエラーやその他のエラーで失敗しました。変換をバイパスし、各パッケージを個別に開くだけで、開くとパッケージがアップグレードされ、正常に変換されて正常に実行されることがわかりました。

0
IronRod

私の場合も同じ問題が発生しました。原因は、接続が埋め込まれておらず、Oracle Clientの非互換性であったことです。

解決策:

私の環境:SQL SERVER 2014 64ビットOracle Client 32ビット

  1. 組み込み/埋め込み接続の場合

    • オープンパッケージ
    • 接続を右クリック
    • 「プロジェクトに変換」オプションを選択します
  2. sQL SSISカタログ/ジョブスケジュールの場合は、図の手順に従って構成を設定します

    • 「SQL JOB-> Step」または「SSIS Catalog-> Package-> Execute」で右クリックし、「Properties」を選択します
    • [構成]-> [詳細設定]タブを選択します。
    • 32ビットランタイムのチェック

ステップごとに詳細を投稿しようとしましたが、評判のためにStack Overflowはそれを許可しません。後でこの投稿を更新することを願っています。

0
Haseeb Ahmed

同じ問題がありました。

プロジェクトレベルの接続マネージャーを使用し、SSDTでパッケージを正しく実行しますが、SQLサーバーエージェントを使用してジョブを展開して実行すると、「接続が見つかりません」というエラーが発生します。

プロジェクトをデプロイすると、プロジェクトレベルの接続マネージャーを使用し、そのプロジェクトから単一のパッケージをデプロイするだけで、SQLサーバーエージェントを介してパッケージを呼び出すと、接続マネージャーが認識できなかったため、パッケージを決定する必要があり、問題は解決しましたレベル接続マネージャまたは最初にプロジェクトを展開する必要があります。

0
BehNam Montazer

失敗した特定の接続を識別することにより、この問題は破損した接続マネージャーであると判断しました。私はSQL Server 2016で作業しており、SSISDBカタログを作成し、そこにプロジェクトを展開しています。

これが簡単な答えです。接続マネージャーを削除してから、同じ名前で再作成します。その接続を使用しているパッケージがまだ正しく接続されていることを確認してください。その方法がわからない場合は、以下の詳細な手順を含めました。

破損した接続を識別するために、次のことを行いました。 SSMSで、Integration Services Catalogsフォルダー、SSISDBフォルダー、ソリューションのフォルダーの順に開き、そのプロジェクトのパッケージのリストが見つかるまで開きました。

失敗したパッケージを右クリックして、レポート>標準レポート>すべての実行に進み、最後の実行を選択して「すべてのメッセージ」レポートを表示することで、失敗した接続を特定できました。私の場合、宛先への接続マネージャー。接続マネージャーを削除してから、同じ名前の新しい接続マネージャーを再作成しました。

その後、パッケージに入ってデータフローを開き、宛先の一部が赤いXで点灯していることを確認しました。宛先を開き、正しい接続名を再選択し、ターゲットテーブルを再選択して、マッピングはまだ正しかった。 6つの宛先があり、赤いXが付いている宛先は3つだけでしたが、それらすべてをクリックして、それらがまだ正しく構成されていることを確認しました。

0
Bob Frasca

私は同じ問題を抱えており、上記のいずれかがそれを解決しました。私のシステムの右下隅で無効にされていた古いSQLタスクがあり、それを見つけるために本当に探す必要がありました。これを削除すると、すべてがうまくいきました

0
user4253824

ジョブの接続値では大文字と小文字が区別されるようです。

0
benik9

Visual Studio 2015で開発されたパッケージの場合、設計時の値を使用する代わりに接続マネージャーの接続文字列を設定するパラメーターの値を指定する必要があります(別のサーバーで展開または実行する場合)。これにより、エラーメッセージが表示されなくなります。これはバグかもしれないと思う。

dtexec /project c:\mypath\ETL.ispac /package mypackage.dtsx /SET \Package.Variables[$Project::myParameterName];"myValueForTheParameter"

プロジェクトレベルの接続文字列をパラメーター化するかどうかにかかわらず、これをテストしました。結果は同じでした。つまり、使用されていないと思っても、パラメーターの値を設定する必要があります。

0
Minnie Shi

一般的に、SSISが明らかに良好な接続について不合理に不平を言っているように見えるのは、Connection Managerではなくパッケージ変数を使用してConnectionを直接定義しようとしているためです。例:今日、WebサービスのURLを含むパッケージ変数に関して「接続」プロパティを定義する式を直接作成するというミスを犯したWebサービスタスクがありました。ただし、ConnectionはConnectionStringと同じものではないことに注意してください!そのため、タスクを見ると、「接続」として完全に有効なURLが表示されているため、すべてが有効であるように、すべての世界を検索しました。問題は、接続を文字列にできないことです。接続マネージャーである必要があります。

0
Dave Ziffer

2008R2で問題を引き起こす別の順列は、パッケージ構成です。プロパティをdtsconfigファイルから保存/構成するように設定し、それが参照する接続を削除しました。解決は簡単で、構成を編集して不要なオブジェクトの選択を解除し、名前を変更した接続マネージャーの適切なプロパティを選択しました。プロジェクトを保存して閉じてから再度開いた後、エラーは再発しませんでした。 :-)

0
Sox

このソリューションは私のために働いた:

SQL Server Management Studioに移動し、失敗したステップを右クリックして、[プロパティ]-> [ログ]-> [ログプロバイダーの削除]を選択し、再度追加します

0
Gonza Piotti

私の場合、これをより簡単な方法で解決できました。 x.dtsConfigアーカイブを開きましたが、理由は不明ですが、このアーカイブは標準形式ではなかったため、ssisは構成を認識できませんでした。幸いなことに、以前にアーカイブをバックアップしていたので、元のフォルダーにコピーするだけで、すべてが再び機能しました。

0
Kevin Infante

この問題を解決するために私がしたことは簡単でした。 (localhos)タグに応答するように、SQL Serverの名前を変更する必要がありました。その後、SSISのすべての接続を変更し、ソリューションを再構築しました...うまくいきました。それがあなたを助けることを願っています

0
Schewns

私の場合、イベントハンドラタスクの1つが削除された古い接続を指しており、未使用のイベントハンドラタスクを削除すると問題が修正されました。最終的には、イベントがイベントハンドラタスクにあることを理解するために、パッケージをXML形式で開きます。

0
Vijred