Mit dem FileRead können Sie einen Datensatz oder den gesamten Inhalt einer Datei innerhalb eines Nachrichtenflusses lesen.
Dieses Thema enthält folgende Abschnitte:
Über den FileRead-Knoten können Sie einen einzelnen Datensatz oder den gesamten Inhalt einer Datei innerhalb eines Nachrichtenflusses lesen, wie im Abschnitt Weiterleitung und Aufbereitung von Nachrichten abhängig vom Inhalt einer Datei beschrieben. Der FileRead ist dem FileInput ähnlich, der eine Datei am Anfang eines Nachrichtenflusses liest, allerdings wird er durch eine eingehende Nachricht dazu gebracht, die Datei zu lesen. Im Gegensatz zum FileInput, der die Datensätze in einer Datei der Reihe nach weitergibt, können Sie den FileRead so konfigurieren, dass er eine vollständige Datei oder einen Teil einer Datei weitergibt.
Der FileRead-Knoten befindet sich im Ablagefach Datei der Palette und wird im WebSphere Message Broker Toolkit durch folgendes Symbol dargestellt:
Funktionen, die in WebSphere Message Broker-Fixpacks verfügbar werden, können mit dem Parameter -f im Befehl mqsichangebroker aktiviert werden. Der Abschnitt Befehl mqsichangebroker enthält weitere Informationen hierzu.
Mithilfe eines integrierten Parsers kann der FileRead-Knoten den Inhalt der Datei parsen und in Form einer Nachrichtenbaumstruktur verteilen. Der Knoten leitet die Daten an Parser, die diese Funktion unterstützen, genau wie der FileInput-Knoten.
Die Haupteigenschaften des Knotens geben die Datei und das Verzeichnis an, aus denen die Datei gelesen werden soll. Der Dateiname wird als Muster angegeben, das Platzhalter enthalten kann. Sowohl das Verzeichnis als auch das Dateimuster können durch Felder in der lokalen Umgebung überschrieben werden.
In der folgenden Tabelle werden die Eingabeterminals des FileRead-Knotens beschrieben.
Terminal | Beschreibung |
---|---|
Eingabeterminal (In) | Das Eingabeterminal, das eine Nachricht zur Verarbeitung durch einen Knoten annimmt |
Dateibeendigungsterminal (Eingang) | Das Eingabeterminal, dass eine Anforderung zum Ausführen der
Dateibeendigungsaktion empfängt, ohne dabei Daten zu lesen. Wenn das Dateibeendigungs-Eingangsterminal (Finish file in) eine Nachricht empfängt, beginnt der FileRead-Knoten mit der in der Eigenschaft Aktion angegebenen Verarbeitung. Wenn am Dateibeendigungs-Eingangsterminal (Finish file in) eine Nachricht eingeht, werden die Daten erst nach Ausführung dieser Aktion gelesen. |
In der folgenden Tabelle werden die Ausgabeterminals des FileRead-Knotens beschrieben.
Terminal | Beschreibung |
---|---|
Fehlerterminal (Failure) | Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn während der Weitergabe der Nachricht ein Fehler auftritt. |
Ausgang | Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn sie erfolgreich von einer externen Ressource abgerufen wurde. Sofern im Empfangsknoten keine Fehler auftreten, wird eine von einer externen Ressource empfangene Nachricht immer zuerst an das Ausgangsterminal gesendet. |
Keine Übereinstimmung | Die am Terminal Keine Übereinstimmung empfangene Nachricht wird
an dieses Terminal weitergegeben, wenn die Datei nicht im Dateisystem vorhanden ist oder
wenn sie vorhanden ist, jedoch kein Datensatz gefunden wird, der mit dem Filterausdruck
übereinstimmt. Wenn das Terminal nicht angeschlossen ist, wird die Nachricht nicht verwendet. |
Dateibeendigungsterminal (Ausgang) | Eine Nachricht, die am Eingangsterminal Datei beenden ankommt, wird mit unverändertem Inhalt an das Ausgangsterminal Datei beenden weitergegeben, doch die lokale Umgebung wird mit den Details zu der Aktion, die der Knoten ausgeführt hat, aktualisiert. |
In den folgenden Tabellen werden die Knoteneigenschaften beschrieben, die Sie in einer angegebenen Registerkarte festlegen können. Die Spalte O zeigt an, ob die Eigenschaft obligatorisch ist (im Toolkit mit einem Stern markiert, wenn ein Wert eingegeben werden muss, weil kein Standardwert definiert ist). Die Spalte K zeigt an, ob die Eigenschaft konfigurierbar ist (Wert kann geändert werden, wenn der Nachrichtenfluss für die Implementierung zur BAR-Datei hinzugefügt wird).
Wenn der Inhalt der Datei erfolgreich über den Nachrichtenfluss weitergegeben wurde, wird die Datei aus dem Dateisystem gelöscht. Kein anderer Dateiknoten kann auf die Datei zugreifen, wenn der Knoten zum Lesen Daten aus ihr liest. Wenn keine Datei mit dem passenden Muster vorhanden ist, wird die Originalnachricht an das Terminal 'Keine Übereinstimmung' weitergeleitet. Wenn das Terminal nicht verbunden ist, wird eine Ausnahmebedingung ausgegeben.
Der Knoten kann so konfiguriert werden, dass er die Datei nach abgeschlossener Verarbeitung nicht löscht. In diesem Fall kann jeder andere Fileread-Knoten ebenfalls auf die Datei zugreifen, wenn er auch im Modus zum Durchsuchen läuft.
In der folgenden Tabelle werden die Eigenschaften von Beschreibung des FileReads beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Knotenname | Nein | Nein | FileRead | Der Name des Knotens. |
Ausführliche Beschreibung | Nein | Nein | Ohne | Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt. |
Kurzbeschreibung | Nein | Nein | Ohne | Kurze Beschreibung des Knotens. |
In der folgenden Tabelle werden die Eigenschaften von Grundeinstellung des FileReads beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung | Eigenschaft des Befehls mqsiapplybaroverride |
---|---|---|---|---|---|
Eingabeverzeichnis | Nein | Ja | Ohne | Absoluter Pfad des Eingabeverzeichnisses in dem vom Dateisystem des Brokers
verwendeten Format. Auf Windows-Systemen beginnt
der Verzeichnispfad beispielsweise mit dem Laufwerkbuchstabenpräfix (z. B. C:). Alternativ dazu kann der Pfad relativ zum Stammverzeichnis der Dateiknoten sein (das mit derselben Umgebungsvariablen wie für die Dateieingabe- und -ausgabeknoten überschrieben werden kann). |
inputDirectory |
Dateiname oder Muster | Nein | Ja | * | Datei bzw. Zeichenfolge (Muster), das einem Dateinamen entspricht. Ein Muster enthält mindestens eines der folgenden Platzhalterzeichen:
Wenn mehrere Dateien mit dem Muster übereinstimmen, wird eine Ausnahmebedingung ausgegeben. Wählen Sie die Option Platzhalter für Umgebung verwenden aus, wenn Sie einen Teil des Dateinamens des Eingabeknotens in diesem Feld verwenden möchten. |
filenamePattern |
Platzhalterabgleich ersetzen | Nein | Nein | False | Nach Auswahl dieser Option ist das Dateimuster kein regulärer Ausdruck mehr. Es darf stattdessen nur einen Stern (*) enthalten. Der Stern * wird durch das Feld $LocalEnvironment/Wildcard/WildcardMatch ersetzt. Diese Position wird normalerweise von einem vorherigen Knoten belegt, z. B. vom FileInput-Knoten. | substituteWildcardMatch |
Aktion | Ja | Nein | Keine Aktion. | Die Aktion, die für die Datei ausgeführt wird, nachdem entweder das
Ende der Datei erreicht wurde oder der Eingangsterminal Datei
beenden eine Nachricht empfangen hat. Diese Aktion wird unter einem der
folgenden Umstände ausgeführt:
Wenn Sie die Option zum Archivieren ('In Unterverzeichnis des Archivs (mqsiarchive) verschieben') auswählen, wird die Datei standardmäßig in das Unterverzeichnis mqsiarchive verschoben, doch diese Einstellung kann durch Festlegen der entsprechenden Variablen in der lokalen Umgebung überschrieben werden. Wenn der Archivdateiname durch eine Variable in der lokalen Umgebung überschrieben wird und im Knoten die Dateibeendigungsoption zum Archivieren mit Zeitmarke ('Zeitmarke hinzufügen und in Unterverzeichnis des Archivs (mqsiarchive) verschieben') festgelegt ist, lautet der Dateiname Zeitmarke_BenutzerdefinierterName. Dabei steht Zeitmarke für Datum und Uhrzeit der Dateiarchivierung, und BenutzerdefinierterName für den von Ihnen angegebenen Dateinamen. Wenn der Archivdateiname durch eine Variable in der lokalen Umgebung überschrieben wird und im Knoten die Dateibeendigungsoption zum Löschen festgelegt ist, wird die Datei gelöscht. Wenn der Archivdateiname durch eine Variable in der lokalen Umgebung überschrieben wird und im Knoten die Dateibeendigungsoption Keine Aktion festgelegt ist, wird für die Datei keine Aktion ausgeführt. |
|
Doppelt vorhandene Archivdateien ersetzen | Ja | Nein | False | Wenn beim Archivieren einer Datei festgestellt wird, dass eine Datei mit demselben Namen bereits vorhanden ist, tritt ein Fehler auf. Setzen Sie diese Eigenschaft auf 'true' (Wahr), um den Fehler zu ignorieren und die Archivdatei zu ersetzen. |
In der folgenden Tabelle werden die Eigenschaften von Anforderung des FileReads beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung | Eigenschaft des Befehls mqsiapplybaroverride |
---|---|---|---|---|---|
Verzeichniseigenschaft 'Position' anfordern | Nein | Nein | $LokaleUmgebung/Ziel/Datei/Verzeichnis | Die Nachrichtenelementposition, in welcher der Name des Eingabeverzeichnisses enthalten ist. | |
Dateinameneigenschaft 'Position' anfordern | Nein | Nein | $LokaleUmgebung/Ziel/Datei/Name | Die Nachrichtenelementposition, in welcher der Name des Eingabedateimusters enthalten ist. | |
Offset property location (Position der Eigenschaft 'Relative Position') | Nein | Nein | $LocalEnvironment/Destination/File/Offset | Die Position des Nachrichtenelements, das die relative Position enthält, an der die Suche nach Datensätzen begonnen werden soll. | |
Length property location (Position der Eigenschaft 'Länge') | Nein | Nein | $LocalEnvironment/Destination/File/Length | Die Position des Nachrichtenelements, das die Länge des Datensatzes enthält, der gelesen werden soll, wenn die Erkennung von Datensätzen mit fester Länge verwendet wird. |
In der folgenden Tabelle werden die Eigenschaften von Ergebnis des FileReads beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung | Eigenschaft des Befehls mqsiapplybaroverride |
---|---|---|---|---|---|
Position für Ergebnisdaten | Ja | Nein | $ResultRoot | Dies ist die Position in der aus der Datei abgerufenen Nachricht,
die in das Feld für die Position der Ausgabedaten in der abgehenden Nachricht kopiert
werden soll. Weitere Informationen hierzu finden Sie unter Ergebnisnachricht mit einer eingehenden Nachricht kombinieren. |
|
Position für Ausgabedaten | Ja | Nein | $OutputRoot | Dies ist die Position in der abgehenden Nachricht, an die der aus
der Datei abgerufene Datensatz kopiert wird. Der Teil des Datensatzes, der an die
Position für Ausgabedaten kopiert werden soll, ist in der Position für Ergebnisdaten
definiert. Standardmäßig wird der gesamte Datensatz kopiert. Weitere Informationen hierzu finden Sie unter Ergebnisnachricht mit einer eingehenden Nachricht kombinieren. |
|
Lokale Umgebung kopieren | Nein | Nein | Ausgewählt | Diese Eigenschaft gibt an, ob die lokale Umgebung in die Ausgabenachricht kopiert wird.
|
|
Datensatzauswahlausdruck | Nein | Nein | true() | Der Ausdruck, der zum Auswählen des richtigen Datensatzes aus der Datei verwendet wird. Der Ausdruck wird für jeden Datensatz in der Datei ausgewertet, bis ein Datensatz gefunden wird, der 'true' ergibt. Dieser Datensatz wird dann an das Ausgangsterminal weitergegeben. Der Auswahlausdruck kann auf einen beliebigen XPath-Ausdruck gesetzt werden, der einen Booleschen Wert zurückgibt. Der Ausdruck wird nicht verwendet, wenn Gesamte Datei für die Option Datensatzerkennung ausgewählt ist. Die
folgenden Korrelationsnamen können zur Verwendung in dem Ausdruck ausgewählt
werden:
|
In der folgenden Tabelle werden die Eigenschaften von Syntaxanalyse der Eingabenachricht des FileReads beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung | Eigenschaft des Befehls mqsiapplybaroverride |
---|---|---|---|---|---|
Nachrichtendomäne | Nein | Nein | Die Domäne für die Syntaxanalyse der ankommenden Nachricht. | ||
Nachrichtengruppe | Nein | Nein | Der Name oder die ID der Nachrichtengruppe, in der die ankommende Nachricht
definiert ist. Wenn Sie diese Eigenschaft festlegen und die Projektabhängigkeiten anschließend aktualisieren, um diesen Nachrichtengruppenverweis zu entfernen, wird eine Warnung ausgegeben. Aktualisieren Sie entweder die Eigenschaft Nachrichtengruppe, oder stellen Sie den Verweis auf dieses Nachrichtengruppenprojekt wieder her. |
||
Nachrichtenart | Nein | Nein | Der Name der eingehenden Nachricht. | ||
Nachrichtenformat | Nein | Nein | Der Name des physischen Formats der eingehenden Nachricht. | ||
ID des codierten Nachrichtenzeichensatzes | Nein | Ja | Systemstandardwert des Brokers | Die ID des codierten Zeichensatzes, anhand dessen die Bytes der gerade gelesenen Datei interpretiert werden. | messageCodedCharSetIdProperty |
Nachrichtenverschlüsselung | Nein | Ja | Ermitteltes Brokersystem | Das Codeumsetzungsschema für Zahlen und umfangreiche Zeichen, anhand dessen die Bytes der gerade gelesenen Datei interpretiert werden. Gültige Werte sind Ermitteltes Brokersystem oder ein numerischer Codierungswert. Weitere Informationen zur Codierung finden Sie unter Datenkonvertierung. | messageEncodingProperty |
In der folgenden Tabelle werden die Eigenschaften von Parseroptionen des FileReads beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Zeitpunkt für Syntaxanalyse | Nein | Nein | Bei Bedarf | Durch diese Eigenschaft wird gesteuert, zu welchem Zeitpunkt eine Eingabenachricht syntaktisch analysiert wird. Gültige Werte sind:
Eine vollständige Beschreibung dieser Eigenschaft finden Sie unter Bedarfsgerechte Syntaxanalyse. |
Baumstruktur unter Verwendung von XML-Schemadatentypen erstellen | Nein | Nein | Nicht ausgewählt | Durch diese Eigenschaft wird gesteuert, ob die Syntaxelemente in der Nachrichtenbaumstruktur Datentypen aus dem XML-Schema enthalten. |
XMLNSC-Kompaktparser für XMLNS-Domäne verwenden | Nein | Nein | Nicht ausgewählt | Durch diese Eigenschaft wird gesteuert, ob der XMLNSC-Kompaktparser für Nachrichten in der XMLNS-Domäne verwendet wird. Wenn Sie diese Eigenschaft festlegen, werden die Nachrichtendaten in Knoten, die mit dem Ausgabeterminal verbunden sind, unter XMLNSC angezeigt, wenn es sich bei dem MQRFH2-Eingabeheader oder der Eigenschaft Nachrichtendomäne unter 'Syntaxanalyse der Eingabenachricht' um XMLNS handelt. |
Zugriff auf gemischten Inhalt | Nein | Nein | Nicht ausgewählt | Mit dieser Eigenschaft können Sie steuern, ob der XMLNSC-Parser Elemente in der Nachrichtenbaumstruktur erstellt, wenn er gemischten Text in einer Eingabenachricht feststellt. Wenn Sie das Kontrollkästchen aktivieren, werden Elemente für gemischten Text erstellt. Andernfalls wird gemischter Text ignoriert, und es werden keine Elemente erstellt. |
Kommentare beibehalten | Nein | Nein | Nicht ausgewählt | Mit dieser Eigenschaft können Sie steuern, ob der XMLNSC-Parser Elemente in der Nachrichtenbaumstruktur erstellt, wenn er Kommentare in einer Eingabenachricht feststellt. Wenn Sie das Kontrollkästchen aktivieren, werden Elemente für Kommentare erstellt. Andernfalls werden Kommentare ignoriert und es werden keine Elemente erstellt. |
Verarbeitungsanweisung beibehalten | Nein | Nein | Nicht ausgewählt | Mit dieser Eigenschaft können Sie steuern, ob der XMLNSC-Parser Elemente in der Nachrichtenbaumstruktur erstellt, wenn er Verarbeitungsanweisungen in einer Eingabenachricht feststellt. Wenn Sie das Kontrollkästchen aktivieren, werden Elemente für Verarbeitungsanweisungen erstellt. Andernfalls werden Verarbeitungsanweisungen ignoriert und es werden keine Elemente erstellt. |
Nicht transparente Elemente | Nein | Nein | Leer | Über diese Eigenschaft wird eine Liste von Elementen in der Eingabenachricht angegeben, die vom XMLNSC-Parser nicht transparent analysiert werden sollen. Die nicht transparente Syntaxanalyse wird nur ausgeführt, wenn keine Gültigkeitsprüfung aktiviert ist (das heißt, wenn Auswerten auf Keine gesetzt ist); Einträge, die in Nicht transparente Elemente angegeben sind, werden ignoriert, wenn die Gültigkeitsprüfung aktiviert ist. |
In der folgenden Tabelle werden die Eigenschaften von Datensätze und Elemente des FileReads beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Datensatzerkennung | Ja | Nein | Gesamte Datei | Mechanismus zur Identifikation von Datensätzen in der Eingabedatei. Folgende Optionen sind gültig:
|
Länge | Ja | Nein | 80 | Die Länge der einzelnen Datensätze in Bytes, wenn die Datensatzerkennung Feste Länge ausgewählt ist. |
Begrenzer | Ja | Nein | DOS- oder UNIX-Linienende | Die Art der Begrenzerbytes, mit denen die einzelnen Datensätze getrennt oder
beendet werden, wenn die Datensatzerkennung Mit
Begrenzer ausgewählt ist. Folgende Optionen sind gültig:
|
Angepasster Begrenzer | Nein | Ja | Die hexadezimal ausgedrückten Begrenzerbytes, wenn die Datensatzerkennung Mit Begrenzer und Angepasster Begrenzer ausgewählt sind. Diese Eigenschaft ist nur obligatorisch, wenn die Eigenschaft Begrenzer auf Angepasster Begrenzer gesetzt ist. | |
Begrenzertyp | Ja | Nein | Postfix | Position des Begrenzers, wenn die Datensatzerkennung
Mit Begrenzer ausgewählt ist. Folgende Optionen sind gültig:
|
In der folgenden Tabelle werden die Auswertungseigenschaften des FileReads beschrieben. Eine vollständige Beschreibung dieser Eigenschaften finden Sie im Abschnitt Auswertungseigenschaften.
Eigenschaft | O | K | Standardwert | Beschreibung | Eigenschaft des Befehls mqsiapplybaroverride |
---|---|---|---|---|---|
Auswertung | Nein | Ja | Ohne | Durch diese Eigenschaft wird gesteuert, ob eine Auswertung stattfindet. Gültige Werte sind:
|
validateMaster |
Fehlerbehebungsmaßnahme | Nein | Nein | Ausnahme | Durch diese Eigenschaft wird gesteuert, was beim Fehlschlagen der Auswertung
geschieht. Folgendes sind gültige Werte:
|