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

时间:2009-07-29 14:08:56

标签: sql-server sql-server-2005

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

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

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

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

2 个答案:

答案 0 :(得分:2)

SQL作业没有超时 - 如果它们运行时间过长或达到特定时间点,则无法将它们配置为自行停止。 (如果可以的话,本应为我节省了大量的开发时间!)您可以配置检查时间或持续时间的步骤,并可以编写步骤中的操作来检查时间,但是在作业或步骤级别,没有。 / p>

这是一个有趣的问题。你为什么要超时?基于你所说的,我猜SQL代理无法告诉操作系统已经收到你通过cmdexec步骤发送的“执行此操作”命令。在发送和等待之后,它认为作业从未开始并相应地报告(并且存在您的隐藏系统超时)。这是怎么回事?您可以投资安全配置或文件访问权限,但我首先要回顾一下您正在启动的任何例行程序 - 它对我来说闻起来很可疑。

答案 1 :(得分:1)

Web服务是您的答案。正如Phillip指出的那样,SQL Server作业中的步骤没有时间。

您可能需要问的一个问题是Web服务超时的原因。根据我的经验,问题可能是您运行的请求太大,要么返回太长的结果,要么导致其他导致Web服务运行时间过长的问题。

否则,您需要与Web服务提供商联系以延长时间。