Nachrichten überprüfen

Der Broker stellt eine Überprüfung zur Verfügung, die auf einer Nachrichtengruppe für vordefinierte Nachrichten basiert.

Vorbereitungen:

Lesen Sie die Konzeptthemen über Nachrichtenflüsse und Parser, insbesondere die Abschnitte MRM-Parser und -Domäne und XML-Parser und -Domänen.

Die Überprüfung wird nur für Nachrichten ausgeführt, die Sie für den Broker modelliert und implementiert haben. Die Nachrichtendomänen, welche die Überprüfung unterstützen, sind MRM, XMLNSC, und IDOC.

Der Broker bietet keine Gültigkeitsprüfung für selbstdefinierende Nachrichten. Die MRM- und IDOC-Parser überprüfen vordefinierte Nachrichten in Bezug auf das Nachrichtenverzeichnis, das von einer Nachrichtengruppe generiert wurde. Die XMLNSC-Domäne überprüft vordefinierte Nachrichten in Bezug auf XML-Schemata, die von einer Nachrichtengruppe generiert wurden.

Nachrichtenflüsse sind so gestaltet, dass sie Nachrichten, die bestimmten Regeln entsprechen, umwandeln und weiterleiten. Standardmäßig führen Parser für eine Nachricht Gültigkeitsprüfungen durch, aber nur, um die Integrität der Parsing-Operation sicherzustellen. Sie können eine Nachricht jedoch sorgfältiger anhand des in der Nachrichtengruppe enthaltenen Nachrichtenmodells prüfen, indem Sie die Überprüfungsoptionen auf bestimmten Knoten in Ihrem Nachrichtenfluss ändern.

Sie können Überprüfungsoptionen zur Überprüfung der folgenden Nachrichten verwenden:
  • Eingabenachrichten, die von einem Empfangsknoten empfangen werden.
  • Ausgabenachrichten, die beispielsweise von einem Compute-, Mappings- oder JavaCompute-Knoten erstellt werden.
Durch diese Überprüfungsoptionen kann sichergestellt werden, dass die Daten, die im Nachrichtenfluss eingehen und ihn wieder verlassen, geprüft werden. Die Optionen bieten Ihnen einen gewissen Grad an Kontrolle über die Gültigkeitsprüfung und werden mit folgenden Zielen ausgeführt:
  • Leistungserwartungen und Sicherheitsanforderung ausgleichen
  • Durchführen von Überprüfungen an verschiedenen Stationen der Nachrichtenflussausführung, z. B bei der Eingabe einer Nachricht und vor der Ausgabe einer Nachricht oder an einem beliebigen Punkt dazwischen
  • Nachrichten behandeln, die das Nachrichtenmodell nicht vollständig beschreibt

Sie können außerdem angeben, welche Aktion ausgeführt werden soll, wenn eine Überprüfung fehlschlägt.

Zur Überprüfung von Nachrichten müssen Sie durch eine Nachrichtenbaumstruktur navigieren und ihre Gültigkeit kontrollieren. Wenn die Eingabenachricht analysiert wird, ist dies eine Erweiterung der erstellten Baumstruktur, und wenn die Ausgabenachricht geschrieben wird, handelt es sich um eine Erweiterung des Bitstrom-Erstellung.

Überprüfungsoptionen sind auf den folgenden Knoten möglich:
Knotentyp Knoten mit Überprüfungsoptionen
Empfangsknoten MQInput, SCADAInput, HTTPInput, JMSInput, TimeoutNotification, ,
Sendeknoten MQOutput, MQReply, SCADAOutput, HTTPReply, JMSOutput, JMSReply, ,
Weitere Knoten Compute, Mapping, JavaCompute, Validate, ResetContentDescriptor, MQGet, HTTPRequest, , , ,

Überprüfungsoptionen können auch in der Anweisung ESQL CREATE und in der Funktion ASBITSTREAM angegeben werden.

Zur Überprüfung von Eingabenachrichten, die in einem Empfangsknoten empfangen wurden, können Sie im dort Überprüfungseigenschaften angeben. Die Eingabenachricht wird überprüft, wenn der Nachrichtenbitstrom für die Erstellung einer Nachrichtenbaumstruktur analysiert wird.

Mit der Eigenschaft Zeitpunkt für Syntaxanalyse des Empfangsknoten können Sie steuern, ob die gesamte Nachricht zu diesem Zeitpunkt analysiert und geprüft wird, oder ob einzelne Felder in der Nachricht nur geprüft werden sollen, wenn auf sie verwiesen wird.

Zur Überprüfung von Ausgabenachrichten, die von einem Umwandlungsknoten erstellt wurden, müssen Sie Überprüfungseigenschaften entweder im Knoten selbst oder im Sendeknoten angeben, durch den die Nachricht gesendet wird. Die Überprüfung wird ausgeführt, wenn der Nachrichtenbitstrom von der Nachrichtenbaumstruktur durch den Sendeknoten erstellt wird.

Alternativ dazu können Sie mit einem Validate-Knoten eine Nachrichtenbaumstruktur an einer bestimmten Position in Ihrem Nachrichtenfluss überprüfen, oder Sie können dazu in einem Compute-, Filter- oder Database-Knoten die Funktion ESQL ASBITSTREAM verwenden.

Einige wenige Überprüfungen werden standardmäßig ausgeführt, wenn Sie die Überprüfungsoptionen nicht ändern. Bei den Standardeinstellungen wird eine Ausnahmebedingung ausgelöst, wenn eine der folgenden Aussagen zutrifft:
  • Daten können nicht abgeglichen werden, z. B. weil der Parser die für den vorgegebenen Feldtyp gelieferten Daten nicht interpretieren kann.
  • Die Reihenfolge der Elemente in der Ausgabenachricht entspricht nicht der Reihenfolge der Elemente in der logischen Nachrichtenbaumstruktur (nur bei MRM-, CWF- und TDS-Modellen mit fester Länge).
Zusätzlich führt der MRM-Parser in folgenden Fällen beschränkte Korrekturaktionen durch:
  • Nicht dem Format entsprechende Felder werden bei der Ausgabe für feste Formate verworfen (nur CWF- und TDS-Modelle mit fester Länge).
  • Wenn verbindlicher Inhalt fehlt, werden Standardwerte (falls verfügbar) bei der Ausgabe für feste Formate geliefert (nur CWF- und TDS-Modelle mit fester Länge).
  • Wenn der Datentyp eines Elements in der Baumstruktur nicht mit dem im Dictionary angegebenen Datentyp übereinstimmt, wird er, wenn möglich, bei der Ausgabe so konvertiert, dass er der Definition im Dictionary für alle Formate entspricht.
Sie können jedoch bei der Verwendung von Überprüfungsoptionen eine sorgfältigere Überprüfung der Nachrichten anfordern. Wenn Sie beispielsweise eine oder mehrere der folgenden Bedingungen prüfen, eine Ausnahmebedingung auslösen oder Fehler protokollieren möchten:
  • Die ganz Nachricht beim Start des Nachrichtenflusses
  • Dass komplexe Elemente über die richtige Zusammensetzung und Inhaltsauswertung verfügen
  • Dass alle Datenfelder die richtigen Datentypen enthalten
  • Dass die Datenfelder den Wertvorgaben im Nachrichtenmodell entsprechen
  • Dass alle Pflichtfelder in der Nachricht dargestellt sind
  • Dass nur die Erwartungsfelder in der Nachricht dargestellt sind
  • Dass die Nachrichtenelemente in der richtigen Reihenfolge sind

Die Beispiele in der Beispielgalerie veranschaulichen einige dieser Überprüfungsoptionen.

Beim Verwenden von Überprüfungsoptionen muss das folgende Verhalten nachvollzogen werden können.
  • Die Eigenschaft Zeitpunkt für Syntaxanalyse, durch die gesteuert wird, ob die Analyse bei Bedarf (auch als teilweises Parsing bezeichnet) ausgeführt wird, wirkt sich auf den zeitlichen Ablauf bei der Überprüfung von Eingabenachrichten (einschließlich Nachrichtenheadern) aus.

    Weitere Informationen zur Eigenschaft Zeitpunkt für Syntaxanalyse finden Sie im Abschnitt Bedarfsgerechte Syntaxanalyse.

  • Wenn eine Nachrichtenbaumstruktur an einen Sendeknoten übermittelt wird, übernimmt der Sendeknoten standardmäßig die für die Nachrichtenbaumstruktur aktivierten Überprüfungsoptionen. Sie können diese Optionen überschreiben, indem Sie im Sendeknoten eine neue Gruppe von Überprüfungsoptionen angeben.
  • Wenn eine Nachrichtenbaumstruktur als Eingabe an einen Compute-, Mapping-, -, - oder JavaCompute-Knoten übermittelt wird, verfügen alle neue Ausgabenachrichtenbaumstrukturen, die der Knoten selbst erstellt, über die durch den Knoten angegebenen Überprüfungsoptionen, selbst wenn die gesamte Nachricht kopiert wurde. Sie können dieses Verhalten außer Kraft setzen und angeben, dass die vom Knoten erstellten Nachrichten die Überprüfungsoptionen der Baumstruktur der Eingabenachricht übernehmen.
  • (Nur MRM-Domäne) Wenn der Bitstrom geschrieben wird und die Überprüfungsoptionen angewandt werden, wird die gesamte Nachricht geprüft. Unter Umständen enthält die Nachrichtenbaumstruktur einen nicht aufgelösten Typ (z. B. wenn ein Compute-Knoten einen nicht aufgelösten Typ von einer Eingabenachricht in eine Ausgabenachricht kopiert, ohne ihn aufzulösen). Wird ein solcher Typ entdeckt, tritt ein Gültigkeitsfehler auf, da es nicht möglich ist, den Typ zu prüfen. Sie können diesen Fehler vermeiden, indem Sie sicherstellen, dass alle nicht aufgelösten Typen aufgelöst werden, bevor sie in Ausgabenachrichten kopiert werden.
  • (Nur MRM-Domäne) Aktivieren Sie das Kontrollkästchen Zeichenfolgen mit fester Länge abschneiden nicht, da die Überprüfung vor dem Abschneiden ausgeführt wird und die Überprüfung für ein Feld mit fester Länge fehlschlägt, wenn die Länge den in der Nachrichtengruppe angegebenen Längenwert überschreitet. Weitere Informationen zur Eigenschaft Zeichenfolgen mit fester Länge abschneiden finden Sie in den Abschnitten CWF-Eigenschaften von Nachrichtengruppen und TDS-Formateigenschaften von Nachrichtengruppen.

Weitere Informationen, wie Sie die Überprüfung mit verschiedenen Eigenschaften steuern können, finden Sie unter Auswertungseigenschaften.

Zugehörige Konzepte
Parser
MRM-Parser und -Domäne
XML-Parser und -Domänen
Nachrichten modellieren
Vordefinierte und selbstdefinierende Nachrichten
Nachrichtenflüsse - Übersicht
Zugehörige Tasks
Nachrichtenfluss entwerfen
Nachrichtenflüsse erstellen
Nachrichtenflussinhalte definieren
Zugehörige Verweise
Integrierte Knoten
Bedarfsgerechte Syntaxanalyse
Auswertungseigenschaften
CREATE-Anweisung
ASBITSTREAM-Funktion
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:28:02

ac00400_