6.6 KiB
PROD-Runbook: ScheduledTask-Steuerung und persistentes Laufzeitlogging
Stand: 2026-08-26
Zielversion: 2.3.3
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.1 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.3 als Administrator installieren beziehungsweise aktualisieren.
- Im Setup-Log
setup_version=2.3.3.0und erfolgreichen Ziel-Self-Test prüfen. - Tool als Administrator starten, den grünen Eintrag
Runtime log storage verified by startup appendprüfen und mit Log Folder den dort genannten aktiven Pfad öffnen. Normalfall ist%ProgramData%\BizTalkPlatformManagementTool\Logs. - 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. - Am Drain-Checkpoint Receive-Location-Ergebnisse prüfen, Group Hub/Monitoring leer laufen lassen und erst dann Yes wählen.
- 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.logund enthält den bei diesem Start erzeugten Verifikationseintrag. - 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.
ProgramData ist ein separates, üblicherweise ausgeblendetes Windows-Verzeichnis. Im Installationsordner unter Program Files wird im Normalfall kein Log erwartet. Version 2.3.1 prüft ProgramData durch einen echten Schreibzugriff; danach folgen LocalAppData, ein Logs-Unterordner im Installationsverzeichnis und Temp. Jeder Fallback oder vollständige Ausfall muss im Grid mit dem betroffenen Pfad und der Exception sichtbar sein.
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.3 beziehungsweise
2.3.3-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.