ssis - 由于超时,集成服务同步运行包失败
问题描述
我正在尝试使用 create execution 命令从存储过程执行 SSIS 包,但我需要知道包何时完成其工作,因此您使用 SYNCHRONIZED 参数,问题是运行 ot 作为 SYNCHRONIZED 失败并出现超时和状态30 秒后出现“意外终止”,但是当我运行 UNSYNCHRONIZED 时一切正常,请您帮忙。
这是我的程序:
ALTER procedure [dbo].[sp_upload]
as
begin
declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Package.dtsx',
@execution_id=@execution_id OUTPUT,
@folder_name=N'Folder',
@project_name=N'Project',
@use32bitruntime=False,
@reference_id=Null
DECLARE @var0 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=50,
@parameter_name=N'LOGGING_LEVEL',
@parameter_value=@var0
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,
@object_type=50,
@parameter_name=N'SYNCHRONIZED',
@parameter_value=1
EXEC [SSISDB].[catalog].[start_execution] @execution_id
Select @execution_id
end
当我使用参数 N'SYNCHRONIZED value = 0 运行它时,它运行正常,但如果我将其更改为 1,它会在 30 秒后超时并失败。
我需要它是同步的,因为我需要在报告执行 ID 之前知道包何时完成其工作。
谢谢
解决方案
这不是错误的包执行,而是您的使用。
假设包需要 45 秒才能运行。您已在过程中将 Synchronized 设置为 true 并从 SSMS 运行它。45秒后,完成。
相同的设置,但现在您从 .net 应用程序运行它。30 秒内,繁荣,超时坏事发生。发生的事情是30 秒的默认命令超时正在打击你。
SqlCommand command = new SqlCommand();
// Change execution timeout to 50 seconds to ensure our 45 second process runs
command.CommandTimeout = 50;
command.CommandType = CommandType.Text;
command.Text = "EXECUTE dbo.sp_upload";
推荐阅读
- react-hooks - 在 typescript 中检查 URL 的有效性后如何更新图标的颜色与 useState 反应?
- vb.net - 协助“不是数组的成员”
- azure - 我是否可以创建 Azure 策略以将资源组中每个资源的日志转发到具有特定保留期的 Azure 监视器/日志分析
- python - 模块熊猫没有属性'DataFrame'
- python - 如何使用 importlib 动态加载 python 文件?
- python - Pdfkit 没有在 Flask 中将我的 Pygal svg 图转换为 pdf
- angular - 找不到模块或其对应的类型声明
- python - 使用滑块在 tkinter 画布上显示部分条形图:如何删除初始的整个条形图?
- hyperlink - 如何在 Oracle Apex 表单上显示可点击的链接
- sql-server - 从 Azure Analytics Log 错误消息中查找 SQL 查询