Lokale Datei als Eingabe für Nachrichtenfluss verwenden
In diesem Abschnitt erfahren Sie, wie Sie mit dem FileInput -Knoten eine Datei in Ihrem lokalen Dateisystem lesen und anschließend Nachrichten weitergeben, die auf dem Inhalt dieser Datei basieren.
Vorbereitungen
Dieses Beispiel zeigt eine mögliche Einstellungskombination der
Eigenschaften Datensatzerkennung,
Begrenzer und
Begrenzertyp, die zur Extraktion von Nachrichten aus
einer Datei verwendet werden kann. Das Beispiel beschreibt den FileInput -Knoten eines Nachrichtenflusses und geht davon aus, dass der Rest des Nachrichtenflusses bereits entwickelt wurde. Außerdem wird angenommen, dass ein Windows -System verwendet wird. Um diese Beispieltask ausführen zu können, müssen Sie zunächst einen FileInput -Knoten zu einem Nachrichtenfluss hinzufügen. Sie benötigen zudem die folgenden Ressourcen:
- Eine Eingabedatei. Um diesem Beispielszenario folgen zu können, sollten Sie eine Eingabedatei mit dem Namen test_input1.xml und folgendem Inhalt erstellen:
Jede Zeile endet mit einem Zeilenabschlusszeichen. Windows System, dies umfasst Wagenrücklauf- und Zeilenvorschubzeichen ( X'0D0A'). Speichern Sie diese Datei in das Verzeichnis C:\FileInput\TestDir.<Message>test1</Message> <Message>testtwo</Message> <Message>testthree</Message> - Eine Nachrichtengruppe. In diesem Beispiel wird eine Nachrichtengruppe namens
xml1verwendet, die den XMLNSC-Parser verwendet. Die Nachrichtengruppexml1modelliert Nachrichten mit dem folgenden Format:<Message>...</Message>
Führen Sie die folgenden Schritte aus:
Vorgehensweise
Ergebnisse
- Die Datei wird verarbeitet. Entsprechend den Werten, die in den Eigenschaften auf der Registerkarte Datensätze und Elemente festgelegt sind, erkennt der FileInput -Knoten Datensätze, die durch DOS-oder UNIX-Zeilenendezeichen getrennt sind, und erstellt eine Nachricht für jeden gefundenen Datensatz. Er leitet die folgenden drei Nachrichten an den Nachrichtenfluss des Out-Terminals weiter:
- Nachricht 1:
<Message>test1</Message> - Nachricht 2:
<Message>testtwo</Message> - Nachricht 3:
<Message>testthree</Message>
- Nachricht 1:
- Wenn dem Datenendterminal ein Nachrichtenfluss zugeordnet ist, wird nach der Verarbeitung des letzten Datensatzes der Datei eine Datenendnachricht weitergegeben.
- Nach dem Ende der Verarbeitung wird die Datei test_input1.xml in das Unterverzeichnis mqsiarchive verschoben (C:\FileInput\TestDir\mqsiarchive\test_input1.xml). Falls das Archivverzeichnis mqsiarchive bereits eine Datei mit dem Namen test_input1.xml enthält, wird diese durch die neue Datei überschrieben.
- Wenn der Nachrichtenfluss fehlschlägt, wird die Verarbeitung entsprechend den Werten, die in den Eigenschaften des FileInput -Knotens festgelegt sind, wiederholt. In diesem Beispielvorgang wird dem Dateinamen eine Zeitmarke hinzugefügt, und die Datei wird in das Verzeichnis mqsibackout verschoben. Hier ein Beispiel für den Pfad einer solchen Datei: C:\FileInput\TestDir\mqsibackout\20070928_150234_171021_test_input1.xml.
Nächste Schritte
Informationen zu den Auswirkungen der Angabe anderer Kombinationen von Werten in den Eigenschaften Datensatzerkennung, Begrenzerund Begrenzertyp des FileInput -Knotens finden Sie unter Trennung von Dateien in Datensätze steuern.
Sie können dieses Beispiel auf die Verarbeitung von Dateien in Unterverzeichnissen erweitern, indem Sie die Eingabedatei in ein Unterverzeichnis mit dem Namen Eingabeverzeichnis stellen und die Eigenschaft Lokale Unterverzeichnisse einschließen auswählen.