Dateiadapter
Der Dateiadapter überträgt Dateien in und aus Microsoft BizTalk Server. Der Dateiadapter besteht aus zwei Adaptern : einem Empfangsadapter und einem Sendeadapter.
In diesem Abschnitt wird der Workflow und die Unterstützung der Batchverarbeitung für den Dateiempfangsadapter und den Dateisendeadapter besprochen.
Verwenden Sie den Datei empfangenen Adapter, um Nachrichten aus Dateien zu lesen und an den Server zu übermitteln. Der Empfangsadapter liest die Datei und erstellt ein BizTalk Message-Objekt, sodass BizTalk Server die Nachricht verarbeiten kann. Während des Lesens aus der Datei sperrt der Adapter die Datei, um sicherzustellen, dass am Dateiinhalt keine Änderungen vorgenommen werden können.
Hinweis
Der Dateiempfangsadapter nimmt keine schreibgeschützten Dateien oder Systemdateien auf. Um die Leistung zu verbessern, stellen Sie sicher, dass Sie über eine Dateimaske verfügen, die diese Dateien nicht enthält.
Der Dateiempfangsadapter liest die Nachrichten aus Dateien in lokalen Dateisystemen oder auf Netzwerkfreigaben. Wenn der angegebene Speicherort auf einer Netzwerkfreigabe aufgrund von Netzwerkproblemen nicht verfügbar ist, wiederholt der Empfangsadapter den Lesevorgang (die Anzahl der Wiederholungen kann in der BizTalk Server-Verwaltungskonsole konfiguriert werden). Nachdem die Nachricht gelesen und von der BizTalk-Messaging-Engine erfolgreich akzeptiert wurde, löscht der Empfangsadaper die Datei aus dem Dateisystem oder von der Netzwerkfreigabe. Wenn die Nachricht zwar gelesen, doch von der Pipeline nicht erfolgreich verarbeitet wurde, reiht der Adapter die Nachricht in die Warteschlange Angehalten ein und löscht dann die Datei aus dem Dateisystem oder von der Netzwerkfreigabe. Wenn der Dateiempfangsadapter die Nachricht nicht an die MessageBox-Datenbank senden oder sie darin nicht anhalten kann, löscht er die Originaldatei nicht aus dem Dateisystem oder von der Netzwerkfreigabe.
Sie können den Dateiempfangsadapter auch so konfigurieren, dass er die Dateien während der Verarbeitung umbenennt. Sie sollten die Dateien umbenennen, um sicherzustellen, dass der Empfangsadaper keine Nachrichtenduplikate generiert, wenn der Empfangsspeicherort heruntergefahren und neu gestartet wird. Dies ist eine konfigurierbare Option für Datei-Empfangsspeicherorte. Die Umbenennung ist standardmäßig deaktiviert. Wenn die Umbenennung aktiviert ist, fügt der Dateiempfangsadapter die Erweiterung .BTS-WIP an den Dateinamen an. Danach liest der Empfangsadaper die Nachrichten aus der umbenannten Datei im Empfangsspeicherort und sendet sie an den Server. Nachdem der Empfangsadaper eine Datei erfolgreich gesendet hat, löscht er die umbenannte Datei aus dem Dateisystem oder von der Netzwerkfreigabe. Wenn eine Nachricht gelesen wurde, doch in der Pipeline nicht erfolgreich verarbeitet werden konnte, reiht der Empfangsadapter die Nachricht in die Warteschlange Angehalten in der MessageBox-Datenbank ein und löscht die umbenannte Datei von der Netzwerkfreigabe.
Hinweis
Durch das Umbenennen von Dateien wird die Leistung nicht beeinträchtigt.
Wenn der Dateiempfangsadapter die Nachricht erfolgreich gelesen, sie in der MessageBox-Datenbank aber nicht erfolgreich gespeichert hat, wird die umbenannte Datei auf ihren ursprünglichen Namen (ohne die Erweiterung .BTS-WIP) zurückgesetzt. Beachten Sie, dass der Empfangsadaper keine Dateien mit der Erweiterung .BTS-WIP liest, wenn die Option zum Umbenennen aktiviert ist.
Der Dateiempfangsadapter ermittelt mithilfe von Windows-Dateiänderungsbenachrichtigungen, wann eine Datei aus dem angegebenen Verzeichnis oder von der angegebenen Freigabe aufgenommen werden soll. Wenn der Dateiempfangsadapter eine Windows-Dateiänderungsbenachrichtigung empfängt, bevor die Datei vollständig in das angegebene Verzeichnis oder auf die angegebene Freigabe geschrieben wurde, wird die Datei gesperrt, und der Adapter ruft die Datei nicht ab. In diesem Szenario fragt der Adapter für den Dateieingang das angegebene Verzeichnis oder die angegebene Freigabe aktiv im Abfrageintervall (ms) ab, das im Dialogfeld Erweiterte Einstellungen angegeben ist, das beim Konfigurieren eines Speicherorts für den Dateieingang verfügbar ist. Wenn der Dateiempfangsadapter ein Verzeichnis oder eine Freigabe abruft, ruft er nicht gesperrte Dateien von der Freigabe ab und sendet sie an die MessageBox-Datenbank.
Hinweis
Der BizTalk Server-Dateiadapter wurde nur auf dem NTFS-Dateisystem getestet und wird unterstützt.
Die nachstehenden Windows-Dateiänderungsbenachrichtigungen bewirken, dass der Dateiempfangsadapter eine Datei vom angegebenen Speicherort aufnimmt:
FILE_NOTIFY_CHANGE_ATTRIBUTES
Jede Attributänderung im überwachten Verzeichnis oder Unterverzeichnis bewirkt, dass ein Wartevorgang für die Änderungsbenachrichtigung zurückgegeben wird.
FILE_NOTIFY_CHANGE_FILE_NAME
Jede Dateinamenänderung im überwachten Verzeichnis oder Unterverzeichnis bewirkt, dass ein Wartevorgang für die Änderungsbenachrichtigung zurückgegeben wird. Die Änderungen umfassen Umbenennen, Erstellen oder Löschen eines Dateinamens.
FILE_NOTIFY_CHANGE_SIZE
Jede Dateigrößenenänderung im überwachten Verzeichnis oder Unterverzeichnis bewirkt, dass ein Wartevorgang für die Änderungsbenachrichtigung zurückgegeben wird. Das Betriebssystem erkennt eine Änderung der Dateigröße nur, wenn die Datei auf den Datenträger geschrieben wird. Für Betriebssysteme, die umfangreiche Zwischenspeicherung verwenden, tritt die Erkennung tritt nur auf, wenn der Cache genug geleert wird.
FILE_NOTIFY_CHANGE_LAST_WRITE
Jede Änderung am letzten Schreiben von Dateien im überwachten Verzeichnis oder Unterverzeichnis bewirkt, dass ein Wartevorgang für die Änderungsbenachrichtigung zurückgegeben wird. Das Betriebssystem erkennt eine Änderung des letzten Schreibzeitpunkts nur, wenn die Datei auf den Datenträger geschrieben wird. Für Betriebssysteme, die umfangreiche Zwischenspeicherung verwenden, tritt die Erkennung tritt nur auf, wenn der Cache genug geleert wird.
Weitere Informationen zur FindFirstChangeNotification-Funktion finden Sie unter https://msdn.microsoft.com/library/windows/desktop/aa364417(v=vs.85).aspx.
Der Dateiempfangsadapter sendet Nachrichten in Batches an den Server. Zunächst erstellt er einen einzigen Batch pro Empfangsspeicherort, indem er alle lesbaren Dateien sammelt, die darin verfügbar sind. Die Batches werden vom Empfangsadaper an die MessageBox-Datenbank gesendet, wenn alle verfügbaren Dateien gesammelt wurden oder wenn der Umfang der gesammelten Dateien die maximale Batchgröße überschreitet.
Nachdem alle Nachrichten im Batch erfolgreich gelesen und an die MessageBox-Datenbank gesendet wurden, löscht der Dateiempfangsadapter die entsprechenden Dateien aus dem Empfangsspeicherort. Wenn bei einigen der Nachrichten im Batch die Verarbeitung fehlgeschlagen ist, werden sie vom Dateiempfangsadapter angehalten und die entsprechenden Dateien aus dem Empfangsspeicherort gelöscht. Wenn das Speichern einiger oder aller Nachrichten in der MessageBox-Datenbank fehlschlägt, wird für den gesamten Batchvorgang ein Rollback ausgeführt, und alle entsprechenden Dateien bleiben unverändert im Empfangsspeicherort erhalten.
Der Dateisendeadapter überträgt Nachrichten aus der MessageBox-Datenbank an eine angegebene Zieladresse (URL). Sie definieren die URL, die aus einem Dateipfad und einem Dateinamen besteht, mithilfe von Platzhalterzeichen, die sich auf die Nachrichtenkontexteigenschaften beziehen. Der Dateisendeadapter löst die Platzhalterzeichen in den tatsächlichen Dateinamen auf, bevor er die Nachricht in die Datei schreibt.
Beim Schreiben einer Nachricht in eine Datei ruft der Dateisendeadapter den Nachrichteninhalt aus dem Textteil des BizTalk Message-Objekts ab. Der Dateisendeadapter ignoriert andere Nachrichtenteile im BizTalk Message-Objekt. Nachdem der Dateiadapter die Nachricht in eine Datei geschrieben hat, löscht er sie aus der MessageBox-Datenbank. Der Dateiadapter schreibt Dateien in das Dateisystem – entweder direkt oder mithilfe des Dateisystemcaches, wodurch die Leistung, insbesondere bei großen Dateien, verbessert werden kann.
Der Dateisendeadapter ruft Batches von Nachrichten aus der MessageBox-Datenbank ab und schreibt sie in Dateien in Zielspeicherorten im Dateisystem oder auf der Netzwerkfreigabe. Die Batchgröße kann beim Dateisendeadapter nicht konfiguriert werden und wird auf den Wert 20 voreingestellt. Wenn BizTalk Server einige der Nachrichten in einem Batch nicht in Dateien schreiben kann, sendet das System diese Nachrichten erneut an die MessageBox-Datenbank, um die Verarbeitung zu wiederholen. Sie können das Wiederholungsintervall und die Anzahl der Wiederholungen über die BizTalk Server-Verwaltungskonsole konfigurieren.