sql-server - 如何设置 SQL Server 2005 作业 CmdExec 超时

标签 sql-server sql-server-2005

我在 SQL Server 2005 中有一个作业设置,其中有一个操作系统 (CmdExec) 步骤。

该步骤调用的程序可能需要很长时间才能运行。我发现,如果程序响应时间超过 1 分 40 秒,则该步骤将失败,并显示错误消息“操作已超时”。程序实际上继续运行并生成所需的结果。

如何设置此作业中步骤的超时期限。或者,如果有一种方法可以为整个作业设置超时,那也同样有用,因为这是作业中的唯一步骤。如果一切都失败了,我愿意更改整个服务器的超时,尽管显然这将是最后的手段。

我已尝试查看步骤、作业和 SQL Server 代理的属性,但未能找到设置此选项的任何位置。

最佳答案

SQL 作业没有超时 - 您无法将它们配置为在运行时间过长或到达特定时间点时自行停止。 (如果可以的话,将为我节省大量开发时间!)您可以配置步骤来检查时间或持续时间,并且可以对步骤内采取的操作进行编码以检查时间,但在作业或步骤级别,不行。

这就是为什么这个问题很有趣。为什么你会超时?根据您所说的,我猜测 SQL 代理无法判断操作系统已收到您通过 cmdexec 步骤发送的“执行此操作”命令。发送并等待后,它认为作业从未开始并相应地报告(并且存在隐藏的系统超时)。这是怎么发生的?您可以投资安全配置或文件访问权限,但我首先要检查您正在启动的任何例程 - 我觉得其中有些东西很可疑。

关于sql-server - 如何设置 SQL Server 2005 作业 CmdExec 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1200527/

相关文章:

c# - 如何从 windows 服务使用 windows 身份验证连接到 sql-server?

sql-server-2005 - quotename 在 exec 中不起作用吗?

C# 在 SQLite 和 SQL Server 之间同步数据

c# - asp.net core mvc 控制台不再出现

不支持 SQL 构造或语句

c# - SqlBulkCopy 计算字段

SQL 查询开始日期和结束日期的混淆

sql-server - 以 PascalCase 格式转换文本

sql - 将 SQL 消息输出到日志文件

c# - SQL插入一行或多行数据?