SSIS包dtsconfig文件的加载优先顺序。微软做出了明智的选择吗?

时间:2019-01-05 00:26:59

标签: ssis

根据有关将配置文件评估到SSIS包中的Microsoft文档,请参阅“了解如何在运行时应用包配置”:


https://docs.microsoft.com/en-us/sql/integration-services/packages/legacy-package-deployment-ssis?view=sql-server-2017

在实用程序加载并运行程序包时,事件按以下顺序发生:

  1. dtexec实用程序将加载程序包。

  2. 实用程序将在设计时按照包中指定的顺序应用包中指定的配置。 (对此的一个例外是“父程序包变量”配置。该实用程序仅将这些配置应用一次,然后在此过程中稍后进行。)

  3. 该实用程序然后应用您在命令行上指定的所有选项。

  4. 然后,该实用程序将在设计时按照软件包中指定的顺序重新加载软件包中指定的配置。 (同样,此规则的例外是“父程序包变量”配置)。该实用程序使用指定的任何命令行选项来重新加载配置。因此,可能会从其他位置重新加载不同的值


我看到在步骤3中在命令行中应用的程序包配置可能在步骤4中被程序包内指定的配置设置覆盖。

我有两个问题:

  1. 如果在步骤4中执行相同的步骤,步骤2是否有可能获得任何收益?例如,执行步骤2会不会增加任何值?
  2. 对我来说,奇怪的是,程序包中的config选项优先于通过命令行在步骤2中指定的配置选项。第二步将执行dtexec命令,传递指向外部配置文件的dtsconfig参数。由于最好从程序包中提取环境配置信息,然后将其放入单独的配置文件中,因此我认为这应该优先于为测试目的而设置的程序包。这是明智的加载优先顺序吗?

我相信在SQL 2008之前,SSIS不能以这种方式工作。我认为以前会更好。我敢肯定,如果他们更改了,他们有一个深思熟虑的原因。我想了解其背后的逻辑。

谢谢

这是生产软件包的示例日志,该软件包在软件包中设置了“启用配置”。由于上述原因,我通常确保在释放它之前始终将其禁用。您会看到它试图在开发人员的AllFiles文件夹中加载配置文件,但由于该文件不在产品中而失败。然后,它将实际的prod配置文件加载到ciwsqlxp0049上。然后,它再次尝试加载开发人员测试配置文件,但失败了,因此最后,幸运地使用了prod配置文件。

如果测试配置设置位于可从产品服务器访问的测试服务器上(这可能在我们的产品环境中发生),则pkg将运行测试设置,并且可能不会立即被发现。幸运的是,该软件包包含对prod服务器未找到的配置文件的引用,并且加载失败。在我看来,如果软件包中的配置设置不优先于软件包中的配置设置,那将是最好的选择,这将是MS选择的更安全的配置加载行为。

评论?我想念什么?

Started:  7:15:02 AM
Info: 2018-12-28 07:15:05.64
   Code: 0x40016041
   Source: SOA_Export Approver Listing 
   Description: The package is attempting to configure from the XML file "C:\MyAllFiles\AllApps\SOA\ReadyforImplementation\SOA_Export Approver Listing.dtsConfig".
End Info
Warning: 2018-12-28 07:15:05.64
   Code: 0x80012012
   Source: SOA_Export Approver Listing 
   Description: The configuration file name "C:\MyAllFiles\AllApps\SOA\ReadyforImplementation\SOA_Export Approver Listing.dtsConfig" is not valid. Check the configuration file name.
End Warning
Warning: 2018-12-28 07:15:05.64
   Code: 0x8001201B
   Source: SOA_Export Approver Listing 
   Description: Failure importing configuration file: "C:\MyAllFiles\AllApps\SOA\ReadyforImplementation\SOA_Export Approver Listing.dtsConfig".
End Warning
Warning: 2018-12-28 07:15:05.64
   Code: 0x80012059
   Source: SOA_Export Approver Listing 
   Description: Failed to load at least one of the configuration entries for the package. Check configuration entries for "Configuration 1" and previous warnings to see descriptions of which configuration failed.
End Warning
Info: 2018-12-28 07:15:05.65
   Code: 0x40016041
   Source: SOA_Export Approver Listing 
   Description: The package is attempting to configure from the XML file "\\CIWSQLXP0049\SOA\ConfigFiles\SOA_Export Approver Listing.dtsConfig".
End Info
Info: 2018-12-28 07:15:05.68
   Code: 0x40016041
   Source: SOA_Export Approver Listing 
   Description: The package is attempting to configure from the XML file "C:\MyAllFiles\AllApps\SOA\ReadyforImplementation\SOA_Export Approver Listing.dtsConfig".
End Info
Warning: 2018-12-28 07:15:05.68
   Code: 0x80012012
   Source: SOA_Export Approver Listing 
   Description: The configuration file name "C:\MyAllFiles\AllApps\SOA\ReadyforImplementation\SOA_Export Approver Listing.dtsConfig" is not valid. Check the configuration file name.
End Warning
Warning: 2018-12-28 07:15:05.68
   Code: 0x8001201B
   Source: SOA_Export Approver Listing 
   Description: Failure importing configuration file: "C:\MyAllFiles\AllApps\SOA\ReadyforImplementation\SOA_Export Approver Listing.dtsConfig".
End Warning

0 个答案:

没有答案