Frage

Ich bin derzeit verantwortlich für die Umsetzung einer Multi-Umgebung BizTalk Deployment und wir planen auf die Bereitstellung von zwei oder mehr BizTalk Server in einer BizTalk-Gruppe Hochverfügbarkeit und Skalierbarkeit zu bieten.

Unsere Sorge ist nun, wie die Parallelität zu handhaben für Adapter wie WCF SQL und Dateiadapter, weil es zum Beispiel für SQL-Adapter wahrscheinlich möglich ist, dass zwei BizTalk Receive-Host auf Abruf auf der gleichen DB-Tabelle halten.

Zunächst meine Idee für SQL Sperrhinweise beschäftigen, aber ich bin nicht wirklich sicher, ob es eine andere Sorge auf diesem oder wenn es irgendeine andere bewährte Lösung.

Für File Adapter Was ich weiß, ist es möglich, ist der Adapter empfangen setzen bei der Verarbeitung so den Dateinamen der Datei zu ändern, dass andere BizTalk-Host die Datei Aufnehmen vermeiden aber ich bin mir nicht ganz sicher, ob diese Lösung schon genug ist In der Griff Gleichzeitigkeit.

Ich würde schätzen, irgendwelche Hilfe / Vorschläge.

Vielen Dank

War es hilfreich?

Lösung

allgemeine die meisten BizTalk Adapter Rennbedingungen für Sie aus dem Kasten heraus vermeiden wird.

Zum Beispiel kann der BizTalk File-Adapter bereits implementiert Datei so mehrere Instanzen des Dateiadapters auf verschiedene Hosts Sperren wird die gleiche Datei nicht lesen.

Die Verwendung der Datei Umbenennungsfunktion wird im Folgenden erläutert (Aus dem MSDN-Dokumentation )

  

Sie können auch die Datei konfigurieren   Empfangsadapter zu Umbenennen von Dateien, wenn   Verarbeitung von ihnen. Sie sollten umbenennen   Dateien, um sicherzustellen, dass der Empfang   Adapter erzeugt keine doppelte   Nachrichten, wenn der Empfang Lage ist   heruntergefahren und neu gestartet

Es gibt mehrere Adapter, die nicht sicher sind, wenn sie auf mehrere Instanzen laufen. Dazu gehören (aber es kann andere) die POP3, FTP, MSMQ / MSMQT und Datenbank-Adapter in Polling-Szenarien.

Für die Adapter können Sie die BizTalk-Funktion von geclusterten Hosts verwenden. Es gibt ein Post hier Erläuterung der Verwendung und Konfiguration eines Clustered-Host. Dies ist der einfachste Weg, um Ihre SQL-Abfrage, um sicherzustellen, keine Duplikate herzustellen. Sie können dies auch auf SQL-Ebene erreichen, wenn Sie benötigen.

Darüber hinaus sind Sie wirklich in die Besonderheiten der Geschäftsprozesse immer und Sie werden für jeden Fall entwerfen müssen. Zum Beispiel - was passiert, wenn die gleiche Datei zweimal von einem Quellsystem zur Verfügung gestellt

?

Siehe die beiden folgenden SO Beiträge für einige weitere Informationen rund um dieses Thema:

BizTalk - Receive-Port zweimal aus DB lesen

Network Load Balancing Biztalk Instanzen

Andere Tipps

In diesem Abschnitt von MSDN kann Ihnen auch helfen:

http://msdn.microsoft.com/ en-us / library / aa558765 (BTS.20) aspx

Vielen Dank für die Antwort und die Links, die Sie zur Verfügung gestellt haben. Eigentlich habe ich schon gelesen, einige von ihnen, und ich war auch in der Lage, einige Tests in Bezug auf jene Lösungen zu tun. Für SQL-Adapter erweist sich BizTalk-Host-Clustering eine gute Lösung zu sein, aber führt, dass Sie nicht den Vorteil der BizTalk-Gruppe (Host-Redundanz) für Skalierbarkeit Zweck zu maximieren. Also aus diesem Grund haben wir beschlossen, wir werden die Clustering-Lösung zu vermeiden, aber für MessageBox, die wirklich brauchen das Clustering für Hochverfügbarkeit. Was wir versuchen zu erreichen, ist eine Aktiv / Aktiv mit oder soll ich sagen Lastenausgleich mittels BizTalk Server-Gruppe, welche Mittel wir erhalten gleichzeitig Adapter Polling wirklich mehrere SQL gehen zu müssen. Am Anfang war meine Lösung in Abfrageebene es durch Sperrhinweise Handhabung unterhalb Probe meiner SP ist.

MERGE INTO EmployeeComp
USING (SELECT EmployeeID
FROM
[AdventureWorks].[dbo].[EmployeeComp] 
WITH (READPAST, UPDLOCK) 
WHERE
[AdventureWorks].[dbo].[EmployeeComp].[Status] = 0) e(EmployeeID)
 ON EmployeeComp.EmployeeID = e.EmployeeID
WHEN MATCHED THEN
 UPDATE SET
 STATUS = 2

OUTPUT Inserted.EmployeeID, Inserted.Name, Inserted.Status;

Können Sie ein Feedback mit der SP geben die ich angelegt habe? Ich habe einige Tests mit rund 500.000 Daten von BizTalk WCF-SQL-Adapter gelesen werden und dann zur gleichen Zeit noch Tausende von Daten seinem Schreib- und es beweisen zu arbeiten, wie das, was ich erwartet habe.

Obwohl Lösung in Ordnung zu sein scheint, aber ich bin mir noch nicht sicher, was sind Auswirkungen auf diese Art von Lösung, vielleicht können Sie mir etwas Licht mit dieser auch?

Auch denke ich, ob es möglich SQL Server Service Broker aus diesem Artikel verwenden. http://blogs.msdn.com/adapters/archive/2008/06/30/using-the-wcf-sql-adapter-to-read- Nachrichten-from-ssb-Warteschlangen-and-submit-sie-to-biztalk.aspx

Im Moment bin ich noch mit ihm überprüft und noch nicht sicher, ob, wie möglich, dies zu erarbeiten.

Vielen Dank

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top