2012-04-04 8 views
0

Ausführen von Windows 2003 mit SQL Server 2005 mit ca. 85-90 Jobs, die einmal pro Stunde (zu unterschiedlichen Zeiten) ausgeführt werden, Erstellen neuer Sitemaps für jede auf dem Server gehostete Website zusammen mit un -Publishing-Seiten.SQL Server-Agent-Jobs abstürzen

Das Problem, das ich mit dem Server habe, ist, dass der Server in drei Stufen zu laufen scheint, die Jobs laufen jeden Tag zwischen 8am - 6pm, und der Server wird jeden Morgen um 2-3am neu gestartet.

Sobald die Jobs am Morgen beginnen, werden sie etwa 90 Minuten lang (9.30 Uhr) erfolgreich ausgeführt und benötigen etwa 3-5 Sekunden, um den Job abzuschließen.

Nach 9.30 werden die Jobs korrekt gestartet, bleiben dann beim Ausführen hängen (mit 100% CPU).

Wenn ich den Auftrag manuell stoppe, wird der Server wieder normal, aber dann werden die Jobs überhaupt nicht ausgeführt, wodurch der Fehler unten angezeigt wird. (Sie wurden geändert alle 60 Minuten zu laufen, nicht alle 15 vor ein paar Monaten, aber die Namen wurden geändert nie)

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. 

Informationen über das Skript, das ausgeführt wird: Es ist ein 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 - Das Skript ist in den allgemeinen Einstellungen als ActiveX-Skript, nicht als T-SQL-Skript, daher kann ich keine Ausgabedatei für die Fehler angeben.

Hinweis: Ich habe auf diesem Server oder dem CMS, den es repliziert, nichts eingerichtet, und mein Wissen über Datenbanken ist ziemlich gering.

+0

Einrichtung ausführliche Protokollierung, so dass Sie einige nützliche Ausgabe erhalten können und sehen, ob das hilft: http://www.mssqltips.com/sqlservertip/1411/verbose-sql-server-agent-logging/ – mellamokb

+0

Erzähl uns mehr über diese Arbeitsplätze . Sind diese VBScripte? Kannst du uns die Quelle zeigen? Vielleicht gibt es einen Fehler, der dazu führt, dass sie in die Endlosschleife kommen? – surfen

Antwort

0

Meine Vermutung ist, dass die Seite, die Sie im Browser anzeigen, [weblink] /ReplicateFile.asp, bei mindestens einer Sitzung fehlschlägt.

Der Code

do Until IEObj.ReadyState=4 
loop 

wird erhebliche CPU-Auslastung verursachen, während er ausgeführt wird. Und, noch wichtiger, wenn der Browser niemals zu ReadyState 4 kommt, wird dieser Code für immer laufen. Zwei von drei davon hängen fest und Sie werden 100% CPU-Auslastung auf Ihrem Server sehen.

+0

Dies scheint das Problem im Skript zu sein, ich habe herausgefunden, wie man verhindert, dass es komplett blockiert, sobald ich einen Job stoppe, das war auf den Prozess IE, der vom Skript erstellt wurde, lief immer noch und daher neu Jobs konnten ihre Version von IE nicht erstellen. Ich bin auf der Suche nach einer Möglichkeit der Fehlerprüfung dieser Schleife oder um ein Zeitlimit hinzuzufügen, aber ich schreibe nie in VBScript, nur verwendet C#. – ItWontWork

Verwandte Themen