4

XMLファイルからロードするようにSSIS構成を構成しました。dtexecを使用してパッケージを実行するときは、処理している国ごとに異なる構成ファイルを指定します。Visual Studioでは、これをFrance.dtsConfigとして指定しました(1つを選択する必要があり、これが最初のものでした)。

でパッケージを実行するとdtexec /FILE Import.dtsx /Reporting V /ConfigFile "C:\Italy.dtsConfig"、「パッケージはXMLファイルFrance.dtsConfigから構成しようとしています」という出力が表示されます。

国ごとに異なるdtsConfigファイルを提供することで、構成をオーバーライドできると思いました。これは可能ですか?私は何が間違っているのですか?

4

4 に答える 4

10

SQL Server 2008 R2を使用していますが、構成のオーバーライドが明らかに無視されているという同じ問題が発生していました。必要なトリックは、パッケージ(パッケージ構成)からXML構成設定を削除し、パッケージを実行するときに、指定したXML構成ファイルが適用されることでした。ただし、ファイルの使用に関するメッセージは出力されません(また、パッケージからXML構成定義を削除したため、そのメッセージも出力されません)。

MSDNには、最初は意味がなかったという説明があります(「実行時にSSISパッケージ構成がどのように適用されるかを理解する」のセクションに進んでください)が、XML構成ファイルが定義されていないことが望ましい結果をもたらすことがわかった後、次のことができます。それが何を言おうとしているのか見てください。

私の場合、XMLファイルを使用して、[SSIS構成]テーブルが見つかったサーバーのインスタンス名を設定していました。設計時には、これは接続マネージャーオブジェクトのDEVServerであり、値をTESTSvrにオーバーライドしたいと思います。ルールに従う:

  1. 「ユーティリティは、設計時にパッケージで指定された構成を、パッケージで指定された順序で適用します。」したがって、値DEVServerはパッケージからロードされます。
  2. 「ユーティリティは、コマンドラインで指定したオプションを適用します。」これで、XMLファイル(TESTSvr)の値が読み込まれます。ここで好きなファイル名を指定でき、ロードされます(フランスまたはイタリア)。
  3. 「次に、ユーティリティは、設計時にパッケージで指定された構成を、パッケージで指定された順序で再ロードします。...ユーティリティは、構成を再ロードするために指定されたコマンドラインオプションを使用します。」コマンドライン値の使用に関するルールの2番目の部分に注意してください。現在、サーバーをTESTSvrに設定しているため、この値を使用して、必要な[SSIS構成]テーブルから他の構成値をロードします。
于 2013-01-22T23:12:36.027 に答える
7

この動作を文書化した記事への参照はありませんが、確認しました。パッケージ構成で構成ファイルとして指定されたファイルが実行時に使用可能な場合、コマンド ラインで指定されたファイルよりも優先して使用されます。

私の経験と私の意見では、これは、コマンドで何かを指定すると組み込みのデフォルトをオーバーライドする必要がある通常の動作に反します。

dtexec コマンドで指定された構成ファイルを使用するには、パッケージ構成オーガナイザーでXML 構成ファイルの構成文字列に指定されているファイルの名前を変更するか、削除します。

于 2012-09-18T09:13:29.523 に答える
2

これはうまくいくはずです

 /CONFIGFILE "C:\Italy.dtsConfig"   /REPORTING V

内の完全な構成ファイルの場所を指定しますdouble quotes

編集 :

パッケージを MSDB にデプロイしたら、パッケージを実行するコマンドは次のとおりです。

  DTEXEC  /SQL "\Package.dtsx" /SERVER "Server Name"
          /CONFIGFILE "C:\Italy.dtsConfig"  /REPORTING V

それ以外の場合は、ファイル システムにデプロイした場合

 DTEXEC  /f "Physical Package Location"
 /CONFIGFILE "C:\Italy.dtsConfig" /REPORTING V

正しいパッケージを指しているかどうかを確認してください

MSDN

  You can use the /ConfigFile option to load additional configurations 
  at run time that you did not specify at design time. However, you cannot
  use the /ConfigFile option to replace configured values that you also
  specified at design time
于 2012-09-17T08:48:01.120 に答える