Freigeben über


Einschränkungen beim Konfigurieren des Dateiadapters

Einschränkungen und Regeln bei verwendung des Dateiadapters.

Dateimaske und Dateiname gotchas

Die Dateimaske ist eine Zeichenfolge, die den Dateityp angibt, den der Dateiempfangshandler vom Empfangsspeicherort abruft. Der Dateiname ist eine Zeichenfolge, die den Namen der Datei angibt, in die der Dateisendehandler die Nachricht schreibt.

Für die Dateinamen- und Dateimaskeneigenschaften gelten die folgenden Einschränkungen:

  • Es kann nur eine Dateimaske oder ein Dateiname pro Empfangsspeicherort oder Sendeport angegeben werden.

  • Die Angabe des vollständigen Pfads oder eines Teils des Pfads zusammen mit der Dateimaske oder dem Dateinamen ist unzulässig. Die Dateimaske und der Dateiname stellen immer einen Namen ohne die Pfadangabe dar.

  • Für die Dateimaske und den Dateinamen wird nicht zwischen Groß- und Kleinschreibung unterschieden.

  • Der Dateiname darf keines der folgenden Zeichen enthalten: <> : / | " ? * ;

  • Die Dateimaske darf keines der folgenden Zeichen enthalten: <> / | " ;

  • Die folgenden reservierten Gerätenamen können nicht als Name einer Datei verwendet werden: CON, PRN, AUX, CLOCK$, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 und LPT9. Außerdem sind Kombinationen aus diesen mit Erweiterungen unzulässig.

  • Windows-Datenträgervolumes verwenden standardmäßig die Benennungskonvention 8.3 (8dot3), die kurze und lange Dateinamen verwendet. Nicht systemfremde Datenträgervolumes deaktivieren die 8dot3-Benennungskonvention und verwenden daher nur lange Dateinamen.

    Wenn 8dot3 aktiviert ist, werden Dateien und ihre Dateierweiterungen in einen kurzen Namen konvertiert. Wird z. B. testabcdefgh.docx in testab~1.dockonvertiert. Beachten Sie, dass der Dateiname gekürzt ist und die Dateierweiterung von .docxdocauf gekürzt wird.

    Dieses Verhalten wirkt sich darauf aus, wie der Dateiadapter die Datei empfängt. Wenn eine Dateimaske auf *.xmlfestgelegt ist, werden Dateien, die mit den *.xml Erweiterungen übereinstimmen *.xmln , aufgenommen.

    Um festzustellen, ob die 8dot3-Benennungskonvention auf Ihren Datenträgern aktiviert ist, öffnen Sie eine Eingabeaufforderung als Administrator, und geben Sie fsutil 8dot3name query c:ein oder usw fsutil 8dot3name query d:. ein. Die Beispielausgabe sieht wie folgt aus:

    C:\WINDOWS\system32>fsutil 8dot3name query c:
    The volume state is: 0 (8dot3 name creation is enabled).
    The registry state is: 2 (Per volume setting - the default).
    
    Based on the above two settings, 8dot3 name creation is enabled on c:
    

    Der Dateiadapter verwendet die FindFirstFile-Funktion. Diese Funktion enthält Suchergebnisse mit den kurzen und langen Dateinamen. Um die kurzen und langen Dateinamen in einem Ordner anzuzeigen, öffnen Sie eine Eingabeaufforderung, wechseln Sie zu Ihrem Ordner, und geben Sie ein dir /x. In einer Eingabeaufforderung können Sie auch eingeben dir c:\foldername /x.

    Wenn Sie die Einstellung 8dot3name auf einem Volume ändern, verwenden neue Dateien die neue Einstellung. Alle vorhandenen Dateien behalten ihre Namen, bis sie verschoben werden.

    Um nur die gewünschten Dateien aufzunehmen und bei höherer Auslastung eine bessere Leistung (weniger Aufwand) zu erzielen, ist es möglicherweise am besten, den Dateiadapter so zu konfigurieren, dass er ein Volume verwendet, in dem 8dot3name deaktiviert ist.

  • Die Gesamtlänge des Dateipfads, der Dateimaske und des Dateinamen (ohne Makroersetzung) darf 256 Zeichen nicht überschreiten. (Dies ist eine Einschränkung der MessageBox-Datenbank).

  • Der Dateipfad kann nicht mit "\\?" beginnen.

  • Zugeordnete Netzwerklaufwerkbuchstaben dürfen im Dateipfad nicht verwendet werden, weil sie auf der Benutzersitzung basieren.

    Die BizTalk-Messaging-Engine überprüft zur Entwurfszeit immer die Dateinamen- und Dateimaskeneigenschaften mithilfe der zuvor genannten Elemente. Außerdem überprüft der Dateiadapter die Dateinamen- und Dateimaskeneigenschaften zur Laufzeit, wenn der Adapter die Nachricht über einen dynamischen Port sendet.

Hinweis

Der Dateiadapter ruft keine Systemdateien oder schreibgeschützten Dateien ab. Nur datenträgerbasierte Dateien werden abgerufen, keine Gerätedateien.

Verwenden von Makros in Dateinamen

Sie können einen vordefinierten Satz von Makros verwenden, um die Dateien dynamisch zu erstellen, in die der Dateisendehandler Nachrichten schreibt. Bevor Sie eine Datei auf dem Dateisystem erstellen, ersetzt der Dateisendehandler alle Makros im Dateinamen durch ihre individuellen Werte. Sie können mehrere verschiedene Makros in einem Dateinamen verwenden.

Sie können die Dateinamenmakros beim Konfigurieren des Dateisendehandlers mithilfe des Objektmodells für BizTalk-Explorer verwenden.

Der Dateisendehandler ersetzt die Makros nicht durch einen Wert, wenn eine der folgenden Bedingungen zutrifft:

  • Die entsprechende Systemeigenschaft ist nicht festgelegt.

  • Das Makro ist falsch geschrieben.

  • Der Wert für das Makro enthält für den Dateinamen ungültige Symbole.

    Wenn eine dieser Bedingungen auftritt, lässt der Dateisendehandler die Makros im Dateinamen unverändert, z. B. Myfile_%MessageID%.xml.

    In der folgenden Tabelle sind die unterstützten Makros aufgeführt und es wird beschrieben, wie sie durch den Dateisendehandler ersetzt werden.

Makroname Ersatzwert
%datetime% UTC-Datum (Coordinated Universal Time) und -Uhrzeit im Format „JJJJ-MM-TTThhmmss“ (Beispiel: 1997-07-12T103508)
%datetime_bts2000% UTC-Datum und -Uhrzeit im Format JJJJMMTThhmmsss“, wobei sss“ für Sekunden und Millisekunden steht (199707121035234 bedeutet beispielsweise 1997/07/12, 10:35:23 und 400 Millisekunden)
%datetime.tz% Lokales Datum und Ortszeit plus GMT-Zeitzone im Format JJJJ-MM-TTThhmmssTZD“ (Beispiel: 1997-07-12T103508+800)
%DestinationParty% Name der Zielpartei. Der Wert stammt aus der Nachrichtenkontexteigenschaft BTS.DestinationParty.
%DestinationPartyQualifier% Qualifizierer der Zielpartei. Der Wert stammt aus der Nachrichtenkontexteigenschaft BTS.DestinationPartyQualifier.
%MessageID% Die GUID (Globally Unique Identifier) der Nachricht in BizTalk Server. Der Wert stammt direkt aus der Nachrichtenkontexteigenschaft BTS. MessageID.
%SourceFileName% Der Name der Datei, aus der der Dateiadapter die Nachricht liest. Der Dateiname enthält die Erweiterung und schließt den Dateipfad aus, z. B. Sample.xml. Wenn diese Eigenschaft ersetzt wird, extrahiert der Dateiadapter den Dateinamen aus dem absoluten Dateipfad, der in file gespeichert ist . ReceivedFileName-Kontexteigenschaft . Wenn die Kontexteigenschaft keinen Wert besitzt, z. B. wenn eine Nachricht nicht auf einem Dateiadapter empfangen wurde, wird das Makro nicht ersetzt und verbleibt unverändert im Dateinamen (Beispiel: C:\Drop\%SourceFileName%). Hinweis: Die richtige Implementierung dieses Makros erfordert, dass die Ausgabenachricht dieselbe Nachricht wie die empfangene Nachricht ist.
%SourceParty% Name der Quellpartei, von der der Dateiadapter die Nachricht empfangen hat Hinweis: Die richtige Implementierung dieses Makros erfordert, dass die Ausgabenachricht dieselbe Nachricht wie die empfangene Nachricht ist.
%SourcePartyQualifier% Qualifizierer der Quellpartei, von der der Dateiadapter die Nachricht empfangen hat Hinweis: Die richtige Implementierung dieses Makros erfordert, dass die Ausgabenachricht dieselbe Nachricht wie die empfangene Nachricht ist.
%time% UTC-Zeit im Format hhmmss“.
%time.tz% Ortszeit plus GMT-Zeitzone im Format hhmmssTZD“ (Beispiel: 124525+530)

Empfangen von Ordner- und Zielspeicherorteigenschaften gotchas

Der Datei-Empfangsspeicherort ist eine Zeichenfolge, die einen Pfad zu einem Ordner in einem Dateisystem oder einer Netzwerkfreigabe enthält, aus dem der Dateiempfangshandler Dateien liest. Der Datei-Zielspeicherort ist eine Zeichenfolge, die einen Pfad zu einem Ordner in einem Dateisystem oder einer Netzwerkfreigabe enthält, in den der Dateisendehandler Dateien schreibt.

Die folgenden Einschränkungen gelten für die Eigenschaften des Empfangsordners und des Zielspeicherorts:

  • Der Dateipfad muss nicht zu dem Zeitpunkt in einem Dateisystem oder einer Netzwerkfreigabe vorhanden sein, zu dem Sie die Eigenschaft in der Benutzeroberfläche angeben.

  • Der Dateipfad muss immer absolut sein.

  • Sie können den Dateipfad im UNC-Format (Universal Naming Convention) angeben (z. B. \\<server>\<share>).

  • Wenn der Dateipfad im UNC-Format ist, darf der Servername nicht die folgenden Zeichen enthalten: ' ~ ! @ # $ ^ & * ( ) = + [ ] { } \ | ; : ' " , <> / ? ;

  • Sie können keine Symbole für übergeordnete (\..\) und aktuelle (\.\) Ordner innerhalb des Dateipfads verwenden.

  • Beim Dateipfad wird nicht zwischen Groß- und Kleinschreibung unterschieden.

  • Der Dateipfad darf keines der folgenden Zeichen enthalten: <> : / | " ? * ;

  • Die folgenden reservierten Gerätenamen dürfen im Dateipfad nicht verwendet werden: CON, PRN, AUX, CLOCK$, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 und LPT9.

  • Die Gesamtlänge des Dateipfads, der Dateimaske oder des Dateinamens (ohne Makroersetzung) darf 256 Zeichen nicht übersteigen. (Die MessageBox-Datenbank macht diese Einschränkung erforderlich.)

  • Der Dateiadapter unterstützt keine Unicode-Angabe des Dateipfads (z. B. "\\?\").

    Einschränkungen, die nur für die Empfangsordnereigenschaft gelten:

  • Legen Sie die Empfangsordnereigenschaft nicht auf einen Ordner fest, der das Microsoft Windows NTFS-Dateisystem mit einer symbolischen Verknüpfung verwendet. Bei Verwendung des Windows NTFS-Dateisystems können Sie für Empfangsspeicherorte des Dateiadapters ausschließlich Ordner mit Netzwerkpfaden ohne Verknüpfung verwenden.

  • Wenn Dokumente an einen UNC-Pfad gesendet werden und Sie über mehr als einen Server für den Empfang von Dokumenten am Empfangsspeicherort für den Dateiadapter verfügen, übernimmt und verarbeitet nur ein Server den Großteil der Dokumente, die an diesen UNC-Pfad gesendet werden. Weitere Informationen zur Dateiumbenennung finden Sie im Abschnitt Dateiadapter.

    Einschränkungen, die nur für die Sendeordnereigenschaft gelten:

  • Der Dateiadapter verfügt möglicherweise nicht über ausreichende Betriebssystemressourcen, um alle Nachrichten in einem Batch gleichzeitig zu verarbeiten, wenn er nicht auf einem Serverbetriebssystem ausgeführt wird, z. B. auf Microsoft Windows Vista.

    Der Dateipfad wird zur Entwurfszeit vom Dateiadapter anhand der zuvor erwähnten Regeln überprüft. Darüber hinaus wird die Nachricht zur Laufzeit vom Dateiadapter überprüft, wenn der Adapter die Nachricht über einen dynamischen Port mit einem Dateiadapter sendet.