Update: Dies ist nun zwei Tage hintereinander geschehen.
Update: XML der geplanten Aufgaben und Bilder jetzt enthalten.
Zwei Server in London, beide Windows 2012, haben eine geplante Aufgabe, die montags bis freitags um 15 Uhr ausgeführt werden soll. Dies wurde in den letzten 5 Monaten problemlos eingerichtet.
Am Montag, den 28. August, führten beide die geplante Aufgabe um 15 Uhr und dann wieder um 16 Uhr aus. Als es zum ersten Mal gemeldet wurde, dachte ich, es sei ein zu großer Zufall, um der Tag zu sein, an dem die Uhren eine Stunde zurückgegangen waren. Ich kann jedoch nicht erklären, warum es passiert ist und ob es überhaupt mit dem Uhrwechsel zusammenhängt.
Die relevanten Protokolle von einem Server (die Protokolle für den anderen folgen ebenfalls diesem Muster):
Ereignis 129 15:00:20 Taskplaner startet Task "\ 3pm", Instanz "C: \ Programme (x86) \ PHP \ v5.4 \ php.exe" mit der Prozess-ID 2388.
Ereignis 100 15:00:20 Taskplaner gestartet "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}" Instanz der Task "\ 3pm" für Benutzer "x \ y".
Ereignis 200 15:00:20 Der Taskplaner hat die Aktion "C: \ Programme (x86) \ PHP \ v5.4 \ php.exe" in der Instanz "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}" der Aufgabe "\ gestartet 3 Uhr nachmittags".
Ereignis 201 15:00:23 Taskplaner hat Aufgabe "\ 3pm", Instanz "{75a3590f-dec1-4dee-bd27-73d63a50a9d7}", Aktion "C: \ Programme (x86) \ PHP \ v5.4 \ php" erfolgreich abgeschlossen .exe "mit Rückkehrcode 0.
Ereignis 129 16:00:20 Taskplaner startet Task "\ 3pm", Instanz "C: \ Programme (x86) \ PHP \ v5.4 \ php.exe" mit der Prozess-ID 1224.
Ereignis 100 16:00:20 Taskplaner gestartet "{3dd46ca9-c525-4796-86b5-5e513fd45f26}" Instanz der Task "\ 3pm" für Benutzer "x \ y".
Ereignis 200 16:00:20 Der Taskplaner hat die Aktion "C: \ Programme (x86) \ PHP \ v5.4 \ php.exe" in der Instanz "{3dd46ca9-c525-4796-86b5-5e513fd45f26}" der Aufgabe "\ gestartet 3 Uhr nachmittags".
Ereignis 201 16:00:23 Taskplaner hat Aufgabe "\ 3pm", Instanz "{3dd46ca9-c525-4796-86b5-5e513fd45f26}", Aktion "C: \ Programme (x86) \ PHP \ v5.4 \ php" erfolgreich abgeschlossen .exe "mit Rückkehrcode 0.
Ich habe diese Frage gesehen. Geplante Aufgabe wird von Zeit zu Zeit zweimal ausgeführt, was auf einen Fehler unter http://support.microsoft.com/kb/2461249 hinweist . Dies schließt Server 2012 jedoch nicht in die Liste der problematischen Betriebssysteme ein.
Ich kämpfe darum, das zu erklären, kann jemand anderes?
Der XML-Export für die geplante Aufgabe lautet:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2013-04-16T14:04:17.4897806</Date>
<Author>x\y</Author>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<StartBoundary>2013-04-17T15:00:20</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByWeek>
<DaysOfWeek>
<Monday />
<Tuesday />
<Wednesday />
<Thursday />
<Friday />
</DaysOfWeek>
<WeeksInterval>1</WeeksInterval>
</ScheduleByWeek>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>x\y</UserId>
<LogonType>Password</LogonType>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>"C:\Program Files (x86)\PHP\v5.4\php.exe"</Command>
<Arguments>-f "c:\a.php"</Arguments>
</Exec>
</Actions>
</Task>
29. Oktober 17:00 - Update - Beide Server haben die geplante Aufgabe erneut um 15:00 und 16:00 Uhr ausgeführt. Ich habe jetzt die PHP-Datei aktualisiert, die vom Scheduler ausgeführt wird, um nichts zu tun, während ich versuche, dies zu lösen. Ich plane, einen Server neu zu starten, um zu sehen, ob sich dadurch morgen etwas ändert.
30. Oktober 08:25 - Update - Beim Exportieren der Aufgaben-XML fiel mir ein, dass ich nicht berücksichtigt hatte, dass die geplante Aufgabe auf dem zweiten Server durch Importieren der XML-Datei der auf der ersten erstellten Aufgabe erstellt wurde. Der einzige Unterschied zwischen den beiden Aufgaben ist der Pfad der PHP-Datei, die sie ausführen, und das Benutzerkonto, unter dem sie ausgeführt werden.
30. Oktober 16:30 - Update - Der neu gestartete Server zeigt dieses Verhalten nicht mehr an. Die geplante Aufgabe wurde einmal darauf ausgeführt. Ich werde ein paar Tage warten, bevor ich den zweiten Server neu starte, falls jemand Ideen zur Diagnose hat, warum / wie es passiert ist
06. November 18:00 - Update - Wir haben alle Updates auf den zweiten Server angewendet und neu gestartet. Wir gingen davon aus, dass dies das Problem lösen würde, aber die 15 Uhr lief noch zweimal - einmal um 15 Uhr und noch einmal um 16 Uhr. Ich habe mir andere geplante Jobs angesehen und sie liefen nur einmal.
quelle
Antworten:
Wir haben gerade das gleiche Problem auf unseren Produktionsservern (auch Windows Server 2012) festgestellt, das diese Woche aufgetreten ist. Es begann auch, nachdem unsere Uhren eine Stunde zurückgingen (das war der 3. November 2013, hier in Toronto).
Update per 12. November 2013:
Nach weiteren Gesprächen mit Microsoft (von unserem Systemadministrator) sagte Microsoft außerdem: "... das Problem wurde in Windows Server 2012 festgestellt und wurde erst in der nächsten Windows-Version Windows 8.1 / Windows Server 2012 R2 behoben." .
quelle
Dieses Problem ist diese Woche seit der Sommerzeitumstellung aufgetreten. Ich weiß, dass dies keine gute Antwort ist, aber das Löschen und Neuerstellen des Jobs scheint das Problem zu lösen. Ich habe einige Jobs getestet, die über Nacht dupliziert wurden, und die neu erstellten Jobs wurden nicht dupliziert.
quelle
Wir konnten den Fehler reproduzieren, wenn der Job auf UTC + 0 (Windows 2012 R2-Server) geplant war.
ZB Wir hatten einen Job, der zu falschen Terminen lief und um 2 Uhr morgens geplant war.
Da unsere Zeitzone UTC + 2 ist, wurde der Job um UTC + 0 ausgeführt.
Es scheint, dass Windows einige Rundungsprobleme hat. Möglicherweise wird UTC intern verwendet. Wenn der Job genau um UTC + 0 ausgeführt wird, führen einige Rundungsfehler oder Rennbedingungen dazu, dass der Job an den falschen Daten ausgeführt wird.
Wir haben auch Jobs gesehen, die wie geplant ausgeführt wurden, aber nach dem Neustart gemeldet wurden:
Nach dem Ändern der geplanten Zeit auf z. B. 2:02 Uhr verschwanden die Fehler.
quelle