5.9 KiB
PROD-Runbook: ScheduledTask-Steuerung und persistentes Laufzeitlogging
Stand: 2026-08-26
Zielversion: 2.3.0
Betroffener Adapter: BizTalk ScheduledTask Adapter 7.0.2
Bestätigter Adapterpfad: C:\Program Files (x86)\BizTalk ScheduledTask Adapter 7.0.2
Ursache und Fix
MSBTS_ReceiveLocation.Enable und .Disable validieren die Transportdaten einer ScheduledTask-Receive-Location. Der Adapter benötigt dafür Microsoft.BizTalk.Scheduler.dll. Diese BizTalk-Assembly liegt im BizTalk-Installationsverzeichnis, ist aber nicht in jeder Umgebung im GAC auflösbar. Der Fehler lautete deshalb sinngemäß Could not load file or assembly Microsoft.BizTalk.Scheduler, Version=3.13.0.0.
Version 2.3.0 erkennt ScheduledTask-Schritte an Adaptername oder scheduler:-URI. Unmittelbar vor der WMI-Mutation sucht sie die Assembly in der lokalen BizTalk-/Adapterinstallation, prüft ihre .NET-Assemblyidentität und lädt sie nur für den laufenden Toolprozess. Weitere angeforderte Abhängigkeiten werden nach derselben Identitätsprüfung aufgelöst. Das Tool kopiert keine Fremd-DLL, registriert nichts und verändert den GAC nicht.
Vorbereitung
- Vorhandene
before.json, Ergebnisdateien und Laufzeitlogs außerhalb des Installationsordners sichern. - Setup 2.3.0 als Administrator installieren beziehungsweise aktualisieren.
- Im Setup-Log
setup_version=2.3.0.0und erfolgreichen Ziel-Self-Test prüfen. - Tool als Administrator starten und mit Log Folder
%ProgramData%\BizTalkPlatformManagementTool\Logsöffnen. - Prüfen, dass der lokale BizTalk-Installationsordner
Microsoft.BizTalk.Scheduler.dllenthält. - Nur wenn BizTalk oder der Adapter abweichend installiert wurde:
AdapterAssemblySearchPathsinBizTalkPlatformManagementTool.exe.configum den vorhandenen lokalen Ordner ergänzen. Mehrere Pfade werden mit Semikolon getrennt. Keine DLL aus ACC, einer alten BizTalk-Version oder einem Downloadordner kopieren.
Kontrollierter Funktionstest
- Diagnose ausführen.
- Snapshot Before ausführen und im Statusgrid die betroffene Receive Location mit Adapter und
scheduler:-Adresse prüfen. - Dry run aktiviert lassen und Shutdown ausführen.
- In
shutdown-plan.jsonbei der betroffenen Receive LocationAdapterNameundAddressprüfen. - Erst nach Planreview Dry-run deaktivieren, Shutdown erneut ausführen und bestätigen.
- Im Operation Log müssen für den Scheduler-Schritt mindestens folgende Inhalte erscheinen:
ScheduledTask adapter preflightProcessBitness=undSearchDirectories=ScheduledTask dependency loaded process-locally,resolved through CLR/GACoderalready loadedCalling MSBTS_ReceiveLocation.DisableReached: Disable receive location completed
- In
shutdown-result.jsonmuss der SchrittSucceededoder bei bereits erreichtem ZustandAlreadySatisfiedsein. - Nach der Wartung Restore zunächst im Dry-run, danach real ausführen.
- Entsprechend
Calling MSBTS_ReceiveLocation.Enable, den erreichten Zustand undSucceeded/AlreadySatisfiedprüfen. - Snapshot After und Compare ausführen; die Receive Location muss dem gespeicherten Sollzustand entsprechen.
Logging-Test über Neustart
- Einen erkennbaren Diagnose- oder Dry-run-Lauf durchführen und Uhrzeit notieren.
- Tool regulär schließen und erneut starten.
- Das Operation Log muss die Einträge des vorherigen Prozesses mit vollständigem Datum und Uhrzeit wieder anzeigen.
- Clear leert nur das Grid. Nach erneutem Programmstart wird die aufbewahrte Historie wieder geladen.
- Log Folder muss den lokalen Ordner öffnen.
- Die aktuelle Tagesdatei heißt
BizTalkPlatformManagementTool-yyyy-MM-dd.log. - Nach dem ersten Start an einem Folgetag wird der abgeschlossene Vortag zu
.log.gzkomprimiert. - Aktueller Tag plus 29 Vortage bleiben erhalten. Einträge außerhalb dieses Fensters werden beim Start entfernt.
- Das Grid lädt höchstens die neuesten 10.000 Einträge; die 30-Tage-Dateien bleiben davon unabhängig vollständig erhalten.
Fehlerfall und Supportpaket
Bei einem Fehler keine Assembly austauschen und den GAC nicht spontan verändern. Folgende unveränderte Evidenz sichern:
- Aktuelle
.logsowie relevante.log.gzaus dem über Log Folder geöffneten Ordner. shutdown-plan.jsonoderrestore-plan.json.shutdown-result.json,restore-result.jsonoder den timestamp-basierten Emergency-Report.before.jsonund vorhandenen Nachher-Snapshot.BizTalkPlatformManagementTool.exe.config.- Screenshot des vollständigen roten Grid-Eintrags und der Umgebung.
- Dateieigenschaften/Version von
Microsoft.BizTalk.Scheduler.dll; die Datei selbst nur nach interner Freigabe übermitteln.
Der Fehlerdatensatz enthält Exceptiontyp, HRESULT, innere Ausnahmen, vorhandenes Fusion-Loaderprotokoll, Stacktrace, angeforderte Assembly, anfordernde Assembly und alle geprüften Suchpfade. Damit lässt sich unterscheiden zwischen fehlendem Pfad, falscher BizTalk-Version, nicht passender Strong-Name-Identität, Bitness-/Abhängigkeitsproblem und eigentlichem WMI-Fehler.
Abnahmekriterien
- ScheduledTask-Receive-Location lässt sich real deaktivieren und wieder auf den Snapshotzustand aktivieren.
- Andere Receive Locations bleiben unverändert funktionsfähig und benötigen keinen Scheduler-Preflight.
- Ein einzelner Fehler bleibt
Failed, verhindert aber keine späteren unabhängigen Planschritte. - Ergebnisreport und Nachher-Snapshot werden auch bei einem Teilfehler soweit möglich geschrieben.
- Historisches Log erscheint nach Neustart wieder im Grid.
- Vortagslogs werden komprimiert und exakt 30 Kalendertage aufbewahrt.
- Setup, Tool und Ergebnisdateien melden Version 2.3.0 beziehungsweise
2.3.0-net461.
Die lokale Mono-Toolchain prüft Resolverlogik, Identitätsgrenze, Persistenz, Kompression und Aufbewahrung ohne BizTalk. Die endgültige Freigabe erfordert diesen realen Windows-/BizTalk-/PROD-Test.