Hosts
Um Hosts in Biztalk automatisch für ein Clusterenviroment zu konfigurieren hat es sich gezeigt, dass sich hierzu Powershell in Verbindung mit WMI am besten eignet. Hierzu kann das WMI Objekt MSBTS_Host ( https://docs.microsoft.com/en-us/biztalk/core/technical-reference/msbts-host-wmi ) verwendet werden.
Mithilfe von
Kann geprüft werden, ob der Host bereits clustered ist. Sollen Hosts unclustered werden, kann das mit der .uncluster Methode erreicht werden.
Um Hosts zu clustern wird die .cluster Methode aufgerufen, der als Parameter die Cluster Resource Group als String übergeben. Hierdurch werden alle Hostinstanzen des Hosts der mit $HostName ausgewählt wurde clustered.
Clustered Hosts sind active passive. Das heißt sie funktionieren als Failover Knoten in Hochverfügbarkeitsumgebungen. Hostinstanzen die in einem BizTalk Server Cluster nicht clustered sind und auf mehreren Knoten erstellt wurden, arbeiten als Active/Active Knoten.
Es empfiehlt sich zum Beispiel FTP- oder SFTP-Adapter Empfangs Handlers in einer geclusterten BizTalk-Host Instanz auszuführen, um nicht mehrere Kopien derselben Datei zu empfangen.
Applicationprobleme
Werden Applikationen clustered muss natürlich bedacht werden, dass sie auch failover fähig sein sollten. Das heißt es sollte zum Beispiel darauf verzichtet werden, lokales caching oder threadstatics zu verwenden, da sie Informationen verwenden, die nur für den jeweiligen Node zugänglich sind und nicht durch BizTalk persistiert werden. Das gleiche Probleme besteht folglich auch bei Memory caches.
Es sollte also darauf verzichtete werden, Daten zu cachen, die sich im Laufe der Verarbeitung ändern können. Wird trotzdem ein cache verwendet, ist zu empfehlen, vor dem Zugriff zu prüfen, ob die Daten aktualisiert werden müssen.
Weiterhin ist darauf zu achten, dass Nachrichten nicht parallel versendet werden sollten, um zu vermeiden, Nachrichten im Failoverfall doppelt zu versenden.