我在 SQL Server 2005 中有一个作业设置,其中有一个操作系统 (CmdExec) 步骤。
该步骤调用一个可能需要很长时间才能运行的程序。我发现,如果程序响应时间超过 1 分 40 秒,则该步骤将失败,并显示错误消息“操作已超时”。该程序实际上继续运行并生成所需的结果。
我如何设置此作业中步骤的超时期限。或者,如果有一种方法可以为整个作业设置超时,那也同样有用,因为这是作业中的唯一步骤。如果一切都失败了,我愿意更改整个服务器的超时,尽管显然这将是最后的手段。
我已尝试查看步骤、作业和 SQL Server 代理的属性,但未能找到设置此选项的任何位置。
SQL 作业没有超时 - 您无法将它们配置为在运行时间过长或达到特定时间点时自行停止。 (如果可以的话,将为我节省大量开发时间!)您可以配置步骤来检查时间或持续时间,并且可以对步骤内采取的操作进行编码以检查时间,但在作业或步骤级别,不行。
这就是为什么这个问题很有趣。为什么你会超时?根据您所说的,我猜测 SQL 代理无法判断操作系统已收到您通过 cmdexec 步骤发送的“执行此操作”命令。发送并等待后,它认为作业从未开始并相应地报告(并且存在隐藏的系统超时)。这是怎么发生的?您可以投资安全配置或文件访问权限,但我首先要检查您正在启动的任何例程——其中的某些内容对我来说有点可疑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)