由于超时,Integration Services 运行 包同步失败
Integration Services run package in synchronously fails due to time out
我正在尝试使用创建执行命令从存储过程执行 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 值 = 0 时,它 运行 没问题,但如果我将它更改为 1,它会在 30 秒后超时失败。
我需要它是同步的,因为我需要知道程序包何时在报告执行 ID 之前完成其工作。
谢谢
这里不是程序包执行错误,而是您的用法。
假设包裹需要 45 秒才能到达 运行。您已在程序中将 Synchronized 设置为 true,并从 SSMS 运行 将其设置为 true。 45秒后,完成。
相同的设置,但现在您 运行 它来自您的 .net 应用程序。 30 秒后,砰的一声,超时,坏事发生了。 default command timeout of 30 seconds 正在攻击你。
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";
我正在尝试使用创建执行命令从存储过程执行 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 值 = 0 时,它 运行 没问题,但如果我将它更改为 1,它会在 30 秒后超时失败。
我需要它是同步的,因为我需要知道程序包何时在报告执行 ID 之前完成其工作。
谢谢
这里不是程序包执行错误,而是您的用法。
假设包裹需要 45 秒才能到达 运行。您已在程序中将 Synchronized 设置为 true,并从 SSMS 运行 将其设置为 true。 45秒后,完成。
相同的设置,但现在您 运行 它来自您的 .net 应用程序。 30 秒后,砰的一声,超时,坏事发生了。 default command timeout of 30 seconds 正在攻击你。
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";