0

运行带有 SQL Server 2005 的 Windows 2003,大约 85-90 个作业每小时运行一次(在不同的时间),为服务器上托管的每个网站生成新的站点地图,以及取消发布的页面。

我在服务器上遇到的问题是,服务器似乎分三个阶段运行,每天早上 8 点到下午 6 点之间运行作业,每天早上 2 点到 3 点左右重新启动服务器。

一旦作业在早上开始,它们将成功运行大约 90 分钟(上午 9.30),大约需要 3-5 秒才能完成作业。

9.30 之后,作业将正确启动,然后卡在执行(使用 100% CPU)。

如果我手动停止作业,服务器会恢复正常,但是作业将根本无法执行,并抛出以下错误。(它们改为每 60 分钟运行一次,而不是几个月前每 15 分钟运行一次,但名称从未更改)

Step ID     1
Server      [Server Name]
Job Name        Execute Replicate File For [website] web
Step Name       Vbscript for Replicate File  every 15Minutes
Duration        00:00:00
Sql Severity        0
Sql Message ID      0
Operator Emailed        
Operator Net sent       
Operator Paged      
Retries Attempted       0

Message
Executed as user: [Domain]\[User]. The step did not generate any output. 
The step failed.

有关正在运行的脚本的信息:它是一个 VBScript

Dim IEObj 
Set IEObj=CreateObject("InternetExplorer.Application")
IEObj.Navigate "[weblink]/ReplicateFile.asp"
IEObj.visible=false
do Until IEObj.ReadyState=4
loop
IEObj.quit
Set IEObj=Nothing

@mellamokb - 该脚本在常规设置中作为 ActiveX 脚本,而不是 T-SQL 脚本,因此我无法为错误指定输出文件。

注意:我没有在这台服务器或它正在复制的 CMS 上设置任何东西,而且我对数据库的了解相当低。

4

1 回答 1

0

我的猜测是,您在浏览器中显示的页面 [weblink]/ReplicateFile.asp 至少在一个会话中出错。

编码

do Until IEObj.ReadyState=4
loop

will cause significant CPU usage while it is running. And, more importantly, if the browser never gets to ReadyState 4, this code will continue to run forever. Have two of three of these stuck, and you will see 100% CPU usage on your server.

于 2012-04-04T12:46:47.883 回答