quiNews

Was Sie Gutes mit uns verbinden können

Verarbeitung von großen Dateien im BizTalk Server

Der BizTalk Server hat eine super Message Engine und ist perfekt für Einzeldatenverarbeitung, Transformationen, Routing, usw. Aber es gibt Dinge, für die ist der BizTalk Server nicht geeignet.

Zum Beispiel ist der BizTalk Server nicht für eine Mensch-Maschine Interaktion geeignet, da es bei einzelnen Nachrichten zu einer höheren Latenz kommen kann. Denn der BizTalk ist für Durchsatz ausgelegt, d.h. er ist super schnell im parallelen Verarbeiten vieler Nachrichten, jedoch können einzelne eine höhere Latenz aufweisen.
Zum anderen ist der BizTalk nicht für große bis sehr große Dateien ausgelegt. Jetzt kann man die Frage stellen, ab wieviel KB oder MB oder GB eine Datei eigentlich groß ist. Die Erfahrung sagt, dass der BizTalk mit Dateien bis 10 MB problemlos umgehen kann. Problemlos heißt: Mindestens eine Datei pro Sekunde. Alles was größer als 10 MB ist, wird zwar verarbeitet, jedoch langsamer.

Bei unserem konkreten Fall wollte der Kunde Gigabyte-große Daten versenden. Bei so großen Daten muss die Datei an der MessageBox vorbei bewegt werden. Wie wir das erreicht haben, ist im Folgenden beschrieben.
 

Benötigte Komponenten

Pipeline:                        ReceiveLargeFilePipeline
Pipeline-Komponente:  ReceiveLargeFileComponent

Pipeline:                        SendLargeFilePipeline
Pipeline-Komponente:  SendLargeFileComponent

Schema:                       LargeFileMetaData.xsd
 

Schaubild

Das Schaubild zeigt folgendes Szenario:

  1. Große Datei wird abgelegt in einem File- Verzeichnis.
  2. Die Receive Pipeline holt die große Datei ab und die Receive Pipeline Komponente legt sie in ein Temp-Verzeichnis ab.
  3. Die Receive Pipeline-Komponente erstellt, nachdem die große Datei komplett ins Temp-Verzeichnis verschoben wurde, ein Metadaten-XML, dass oben genannten Schema LargeFileMetaData.xsd entspricht und sendet dieses an die MessageBox.
  4. Der SendPort ist auf den Nachrichtentyp abonniert und holt die Metadaten-XML. Hier ist unter anderem der komplette Temp-Pfad der großen Datei zu finden.
  5. Mit dieser Information holt die Pipeline die Datei aus dem temporären Verzeichnis und schickt diese an den Adapter (vorbei an der MessageBox), wie z.B. in einem FTP- Adapter.
     

Vorteile

  • Entlasten des SQL- Servers.
  • Große Dateien können trotzdem im BizTalk Server gemonitort werden.

Nachteile

  • Große Datei muss durch einen Cron-Job oder ähnliches selbst „aufgeräumt werden“.

 

Programmablaufpläne

Receive

Send

 

Viele Grüße, Ugur – QUIBIQ Stuttgart

© QUIBIQ GmbH · Impressum · Datenschutz