我是新來的SSIS/SQL所以下面命名的引用可能是不正確的,但我希望傳達的問題獲取回報/退出代碼
調度工具,我的要點在SQL 2012中使用執行已部署的SSIS包時,此工具需要指示SSIS包何時失敗,然後停止運行任何後續預定作業。
該項目在SQL 2012中使用SSIS項目部署模型。部署的SSIS包然後由第三方調度工具調用。在SSIS目錄中,我們使用Execute選項生成一個SQL腳本以傳遞給調度器。編輯此腳本以添加參數以確保作業以SYNSCHRONOUSLY形式運行(即,調用者一直等待直到作業完成)。 SQL腳本從計劃工具運行,並且只會在完成時移動到下一個作業。
問題是當SSIS包失敗時,調度工具沒有收到返回碼。如果SSIS包失敗,它包含捕獲和發送錯誤通知電子郵件的步驟,因此我們確實有失敗的觀點。但是,無論作業是否成功完成,也會運行調度流程中的所有依賴作業。是否有一個參數來強制返回代碼發送到第三方調度工具?腳本的
實施例被用來執行該程序包:
*Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Extract_Job.dtsx', @[email protected]_id OUTPUT, @folder_name=N'ETL', @project_name=N'ETL', @use32bitruntime=False, @reference_id=Null
Select @execution_id
DECLARE @var0 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=50, @parameter_name=N'LOGGING_LEVEL', @[email protected]
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=50, @parameter_name=N'SYNCHRONIZED', @parameter_value= 1; -- turn on synchronized execution
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO*
觀光我試圖
- 使用DTSEXEC命令。但是這不會發送返回代碼,並且同步運行,並且需要同步運行
- 第三方調度程序具有SSIS目錄的插件,但有一個未解決的錯誤,因此無法在當前版本上工作
只是好奇。我試圖決定走哪條路。你有沒有證據表明DTExec比「start_execution」過程更穩定? – 2016-04-27 15:47:10
我不能評論DTEXEC是否更穩定,因爲需要使用第三方調度工具,我正在使用DTEXEC。如果您使用SQL代理,我認爲使用Start_execution過程是有意義的。 – Peffa 2016-06-13 19:21:28