WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Ausnahmebedingung auslösen

Wenn Sie in einem Nachrichtenfluss einen Fehler oder eine andere Situation erkennen, aufgrund derer die Nachrichtenverarbeitung beendet werden soll, können Sie auf zwei Arten eine Ausnahmebedingung in einem Nachrichtenfluss auslösen.

Sie können mithilfe von Anweisungsoptionen oder Knoteneigenschaften eine Nachrichten-ID und Werte angeben, die in den Nachrichtentext eingefügt werden sollen. Auf diese Weise erhalten die Benutzer, die die Ausnahmebedingung interpretieren, zusätzliche Informationen und Identifikationsmöglichkeiten. Sie können alle Nachrichten in allen Katalogen angeben, die dem Broker zur Verfügung stehen. Weitere Informationen finden Sie im Abschnitt Fehlerprotokollierung aus einer benutzerdefinierten Erweiterung verwenden.

Die Situationen, in denen Sie möglicherweise eine Ausnahmebedingung ausgeben möchten, hängen vom Verhalten des Nachrichtenflusses ab; Sie entscheiden beim Entwurf des Nachrichtenflusses, an welcher Stelle diese Aktion geeignet sein könnte. Es ist beispielsweise denkbar, dass Sie den Inhalt der Eingabenachricht prüfen möchten, um sicherzustellen, dass er bestimmten Kriterien entspricht, die nicht vom Empfangsknoten festgestellt werden können (z. B. könnte überprüft werden, ob ein bestimmtes Nachrichtenformat empfangen wurde).

Im nachfolgenden Beispiel wird die Beispielnachricht verwendet, um den Einsatz der ESQL-Anweisung THROW zu veranschaulichen. Um zu überprüfen, ob sich die Rechnungsnummer in einem bestimmten Bereich bewegt, wird für jede empfangene Rechnungsnachricht, die nicht im zulässigen Bereich liegt, eine Ausnahmebedingung ausgelöst.

--Check for invoice number lower than permitted range
IF Body.Invoice.InvoiceNo  < 100000 THEN
   THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1234 VALUES
   ('Invoice number too low', Body.Invoice.InvoiceNo);

-- Check for invoice number higher than permitted range
ELSEIF Body.Invoice.InvoiceNo > 500000 THEN
      THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1235 VALUES
   ('Invoice number too high', Body.Invoice.InvoiceNo);

ELSE DO
  -- invoice number is within permitted range
  -- complete normal processing
ENDIF;
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:20:00


TaskthemaTaskthema | Version 8.0.0.5 | ac17150_