Stabilize BizTalk inventory collection and diagnostics
Build und Test / build (push) Has been cancelled
Build und Test / build (push) Has been cancelled
This commit is contained in:
+60
-19
@@ -38,13 +38,13 @@ Administrative cmd.exe
|
||||
+-- SystemCollector
|
||||
| +-- Windows WMI
|
||||
| +-- BizTalk Registry
|
||||
| +-- Management SQL/DB
|
||||
| +-- MSBTS_GroupSetting für Management SQL/DB
|
||||
|
|
||||
+-- BizTalkWmiCollector
|
||||
| +-- ExplorerOM: vollständige Anwendungsliste
|
||||
| +-- root\MicrosoftBizTalkServer
|
||||
| +-- Anwendungen und Artefakte
|
||||
| +-- Adapter, Hosts und Handler
|
||||
| +-- SAP-Endpunkt-Fallback
|
||||
| +-- optionale Artefakte, Adapter, Hosts und Handler
|
||||
| +-- optionaler SAP-Endpunkt-Fallback
|
||||
|
|
||||
+-- BindingExportCollector
|
||||
| +-- BTSTask ExportBindings /GroupLevel
|
||||
@@ -62,7 +62,13 @@ Administrative cmd.exe
|
||||
+-- atomare Ausgabe
|
||||
```
|
||||
|
||||
Das Programm referenziert keine `Microsoft.BizTalk.*`-Assembly. Dadurch besteht das Deployment nur aus EXE, Konfiguration, Startskript und Dokumentation. Die BizTalk-Integration erfolgt über die offiziell vorhandenen Verwaltungsoberflächen WMI und `BTSTask.exe`.
|
||||
Das Programm besitzt keine compile-time-Referenz auf eine
|
||||
`Microsoft.BizTalk.*`-Assembly. Dadurch besteht das Deployment nur aus EXE,
|
||||
Konfiguration, Startskript und Dokumentation. Die lokal mit den
|
||||
BizTalk-Verwaltungskomponenten installierte
|
||||
`Microsoft.BizTalk.ExplorerOM.dll` wird zur Laufzeit aus GAC beziehungsweise
|
||||
Installationspfad geladen. Die übrige BizTalk-Integration erfolgt über WMI und
|
||||
`BTSTask.exe`.
|
||||
|
||||
## 3. Datenquellen
|
||||
|
||||
@@ -85,7 +91,30 @@ Ermittelt werden unter anderem:
|
||||
|
||||
Kommandozeilenparameter überschreiben automatisch ermittelte Management-DB-Werte.
|
||||
|
||||
### 3.2 BizTalk-WMI
|
||||
### 3.2 BizTalk-Gruppe und ExplorerOM
|
||||
|
||||
Die Management-Datenbank wird zunächst aus Registry und lokalem
|
||||
`MSBTS_GroupSetting` ermittelt. Kommandozeilenparameter haben Vorrang. Die
|
||||
verwendete WQL-Abfrage wird mit Laufzeit und Datensatzanzahl protokolliert:
|
||||
|
||||
```sql
|
||||
SELECT Name,MgmtDbServerName,MgmtDbName FROM MSBTS_GroupSetting
|
||||
```
|
||||
|
||||
Die vollständige Anwendungsliste wird anschließend über
|
||||
`Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer` und integrierte
|
||||
Windows-Authentifizierung aus der BizTalk Management Database gelesen. Es werden
|
||||
keine ändernden ExplorerOM-Methoden aufgerufen. Die Connection String wird nicht
|
||||
protokolliert.
|
||||
|
||||
Dieser Aufbau vermeidet die nicht verlässlich vorhandene WMI-Klasse
|
||||
`MSBTS_Application`, die je nach Installation mit `Invalid class` abbrechen kann.
|
||||
ExplorerOM-Assemblyname, Version und Dateipfad werden protokolliert. Wenn
|
||||
`MSBTS_GroupSetting` nicht gelesen werden kann, darf das automatisch oder per
|
||||
`--management-server`/`--management-database` ermittelte Datenbankziel weiterhin
|
||||
für ExplorerOM verwendet werden.
|
||||
|
||||
### 3.3 Optionale BizTalk-WMI-Daten
|
||||
|
||||
Primärer Namespace:
|
||||
|
||||
@@ -93,11 +122,6 @@ Primärer Namespace:
|
||||
root\MicrosoftBizTalkServer
|
||||
```
|
||||
|
||||
Pflichtquelle:
|
||||
|
||||
- `MSBTS_Application`
|
||||
- `MSBTS_GroupSetting` wird zusätzlich zur sicheren Erkennung von Management SQL Server und Datenbank verwendet
|
||||
|
||||
Optionale beziehungsweise versionsabhängige Artefaktklassen:
|
||||
|
||||
- `MSBTS_Orchestration`
|
||||
@@ -115,13 +139,16 @@ Optionale beziehungsweise versionsabhängige Artefaktklassen:
|
||||
- `MSBTS_HostSetting`
|
||||
- `MSBTS_HostInstance`
|
||||
|
||||
Eine fehlende optionale Klasse erzeugt einen Hinweis, verhindert aber nicht die Anwendungsliste oder den Word-Bericht.
|
||||
Eine fehlende optionale Klasse erzeugt einen Hinweis, verhindert aber nicht die
|
||||
ExplorerOM-Anwendungsliste oder den Word-Bericht. Ist der gesamte BizTalk-WMI-
|
||||
Namespace für diese Zusatzdaten nicht erreichbar, wird der WMI-Teil übersprungen;
|
||||
die zuvor geladene Anwendungsliste bleibt erhalten.
|
||||
|
||||
Zum Schutz vor ungewöhnlich großen Artefaktmengen begrenzt `MaxArtifactDetailsPerType`
|
||||
die aufgenommenen Detaildatensätze pro WMI-Klasse auf standardmäßig 5000. Die
|
||||
Anwendungsliste selbst wird nicht begrenzt.
|
||||
|
||||
### 3.3 BTSTask-Gruppenbinding
|
||||
### 3.4 BTSTask-Gruppenbinding
|
||||
|
||||
Das Tool verwendet:
|
||||
|
||||
@@ -144,7 +171,7 @@ Die temporäre XML-Datei wird:
|
||||
|
||||
Microsoft dokumentiert, dass Kennwörter beim Binding-Export entfernt werden. Zusätzlich redigiert das Tool sensitive Element-, Attribut- und URI-Werte.
|
||||
|
||||
### 3.4 Offline-Binding
|
||||
### 3.5 Offline-Binding
|
||||
|
||||
Für Diagnose- oder Berechtigungsfälle kann ein vorhandener Export verarbeitet werden:
|
||||
|
||||
@@ -306,8 +333,14 @@ Das DR-Runbook muss mindestens enthalten:
|
||||
## 10. Resilienz
|
||||
|
||||
- Collector-Isolation mit eigenem Status und Zeitmessung
|
||||
- WMI-Timeout
|
||||
- WMI nur lokal über `\\.\root\MicrosoftBizTalkServer`
|
||||
- WMI-Timeout, WQL-, Laufzeit- und Datensatzprotokollierung
|
||||
- vollständige Anwendungsliste über read-only ExplorerOM statt
|
||||
`MSBTS_Application`
|
||||
- dynamische ExplorerOM-Auflösung aus GAC und BizTalk-Installationspfad
|
||||
- WMI-Zusatzdaten dürfen nach erfolgreicher ExplorerOM-Erfassung ausfallen
|
||||
- Prozess-Timeout für `BTSTask`
|
||||
- live gespiegelte, secret-bereinigte BTSTask-Ausgabe
|
||||
- WMI-Fallback für SAP-Endpunkte
|
||||
- Offline-Bindingmodus
|
||||
- optionale WMI-Klassen stoppen den Lauf nicht
|
||||
@@ -317,6 +350,8 @@ Das DR-Runbook muss mindestens enthalten:
|
||||
- atomare DOCX-Ausgabe
|
||||
- eindeutige Dateinamen mit Umgebung, Server und Zeitstempel
|
||||
- Exitcode `1` bei unvollständigem Pflichtabschnitt
|
||||
- vollständige Ausnahmeketten mit Typ, HRESULT, WMI-Status, inneren Ausnahmen
|
||||
und Stacktrace auf Konsole und im Log
|
||||
|
||||
## 11. DOCX-Erzeugung ohne Office
|
||||
|
||||
@@ -343,10 +378,12 @@ Auf jedem der beiden BizTalk Server:
|
||||
3. `BizTalkSapEnvironmentInventory.exe --self-test` ausführen.
|
||||
4. Erfassung starten.
|
||||
5. Exitcode prüfen.
|
||||
6. DOCX und Log gemeinsam kontrollieren.
|
||||
7. Anwendungsliste gegen BizTalk Administration abgleichen.
|
||||
8. SAP-Endpunkte und Hostzuordnung prüfen.
|
||||
9. WE20-/WE21-/Credential-/DR-Findings an SAP Basis geben.
|
||||
6. Im Log `MSBTS_GroupSetting`, Datensatzanzahl und Management-Datenbankziel prüfen.
|
||||
7. ExplorerOM-Assemblyname, Version und Pfad kontrollieren.
|
||||
8. DOCX und Log gemeinsam kontrollieren.
|
||||
9. Anwendungsliste gegen BizTalk Administration abgleichen.
|
||||
10. SAP-Endpunkte und Hostzuordnung prüfen.
|
||||
11. WE20-/WE21-/Credential-/DR-Findings an SAP Basis geben.
|
||||
|
||||
ACC:
|
||||
|
||||
@@ -382,6 +419,7 @@ Tests prüfen:
|
||||
- Parsing eines WCF-SAP-Gruppenbindings
|
||||
- SAP-Client, Host und `UseSnc`
|
||||
- Anwendungszuordnung
|
||||
- Diagnose-Logging mit HRESULT und innerer Reflection-Ausnahme
|
||||
- DOCX-Paketstruktur
|
||||
- XML-Gültigkeit aller DOCX-Parts
|
||||
- Ausschluss von Testkennwörtern
|
||||
@@ -395,12 +433,15 @@ Tests prüfen:
|
||||
- keine Garantie, dass Schemanamen alle verwendeten IDoc-Erweiterungen enthalten
|
||||
- dynamisch zur Laufzeit konstruierte SAP-Adressen können im statischen Binding fehlen
|
||||
- WMI-Klassen unterscheiden sich teilweise je BizTalk-Version/CU
|
||||
- die lokal installierte ExplorerOM-Version muss zur lokalen BizTalk-Installation
|
||||
passen
|
||||
- lokaler Ist-Stand; ACC und PROD müssen getrennt ausgeführt werden
|
||||
|
||||
## 15. Referenzen
|
||||
|
||||
- Microsoft: BizTalk Server 2020 Hardware and Software Requirements
|
||||
- Microsoft: `BTSTask ExportBindings`
|
||||
- Microsoft: BizTalk Explorer Object Model
|
||||
- Microsoft: BizTalk WMI Technical Reference
|
||||
- Microsoft: WCF-SAP Port Configuration
|
||||
- Microsoft: SAP System Connection URI
|
||||
|
||||
Reference in New Issue
Block a user