Den untergeordneten Nachrichtenfluss zur Fehlerbehandlung erstellen

Befolgen Sie die nachfolgenden Anweisungen, um den untergeordneten Nachrichtenfluss zur Fehlerbehandlung zu erstellen. Ausführlichere Anweisungen erhalten Sie jeweils über die Links am Ende eines jeden Schritts.

  1. Wechseln Sie im Message Brokers Toolkit zur Perspektive 'Brokeranwendungsentwicklung'.
  2. Erstellen Sie ein neues Nachrichtenflussprojekt namens Error Handler-Nachrichtenflüsse.
    Weitere Informationen hierzu finden Sie im Abschnitt Ein Nachrichtenflussprojekt erstellen.
  3. Erstellen Sie einen neuen Nachrichtenfluss namens Error_Handler.
    Anweisungen hierzu finden Sie unter Nachrichtenfluss erstellen.
  4. Fügen Sie im Nachrichtenflusseditor die in der folgenden Tabelle aufgelisteten Knoten hinzu, und benennen Sie diese um.
    Eine Anleitung hierfür finden Sie im Abschnitt Knoten hinzufügen. Beachten Sie, dass sich der Empfangs- bzw. Sendeknoten in der Tabelle vom MQEmpfangsknoten bzw. MQSendeknoten unterscheidet. Alle untergeordneten Nachrichtenflüsse starten mit einem Empfangsknoten und enden mit einem Sendeknoten.
    Knotentyp Knotenname
    Eingabe Knoten 'Untergeordneten Nachrichtenfluss starten'
    Filter Knoten 'Rücksetzungszähler überprüfen'
    Abfangversuchsknoten Abfangversuchsknoten
    Database Fehlerdatenbank aktualisieren
    Ausnahme Ausnahmeknoten für vollständiges Rollback
    Senden Zurück zum Hauptfluss
  5. Verbinden Sie die Knoten wie in der folgenden Tabelle angegeben.
    Eine Anleitung hierfür finden Sie im Abschnitt Knoten verbinden.
    Anhand der Abbildung unter Informationen zum Beispielprogramm 'Error Handler' können Sie überprüfen, ob die Knoten korrekt verbunden sind.
    Knotenname Terminal Mit diesem Knoten verbinden
    Eingabe Out Knoten 'Rücksetzungszähler überprüfen'
    Knoten 'Rücksetzungszähler überprüfen' True (Wahr) Abfangversuchsknoten
    Abfangversuchsknoten Try Zurück zum Hauptfluss
    Catch Fehlerdatenbank aktualisieren
    Fehlerdatenbank aktualisieren Out Ausnahmeknoten für vollständiges Rollback
  6. Konfigurieren Sie die Knoteneigenschaften wie in der folgenden Tabelle angegeben. Akzeptieren Sie die Standardwerte für alle Eigenschaften, es sein denn, es ist ein alternativer Wert in der Tabelle aufgeführt.
    Eine Anleitung hierfür finden Sie im Abschnitt Knoten konfigurieren.
    Knotenname Seite Eigenschaft Wert
    Fehlerdatenbank aktualisieren Grundeinstellung Datenquelle ERRORDB
    Grundeinstellung Transaktion Festschreiben
    Ausnahmeknoten für vollständiges Rollback Grundeinstellung Nachrichtennummer 3002
    Grundeinstellung Nachrichtentext Vom Nachrichtenfluss 'Error_Handler'. Siehe Informationen in ERRORDB.
  7. Fügen Sie folgende ESQL-Code-Module zur Datei 'Error_Handler.esql' hinzu. Sie können den ESQL-Code kopieren und direkt in die ESQL-Datei einfügen.
    Weitere Informationen hierzu finden Sie im Abschnitt ESQL entwickeln.
    CREATE FILTER MODULE Error_Handler_Filter
       CREATE FUNCTION Main() RETURNS BOOLEAN
       BEGIN
          IF Root.MQMD.BackoutCount='0' THEN
          RETURN TRUE;
          ELSE
             RETURN FALSE;
          END IF;
       END;
    END MODULE;
    
    CREATE DATABASE MODULE Error_Handler_Database
    CREATE FUNCTION Main() RETURNS BOOLEAN
    BEGIN
    
    DECLARE Error INTEGER;
    DECLARE Text CHARACTER;
    DECLARE Place INTEGER;
    DECLARE LastPlace INTEGER;
    DECLARE NodeName CHARACTER;
    DECLARE Label CHARACTER;
    DECLARE FlowName CHARACTER;
    
    -- Set the start point
    DECLARE start REFERENCE TO ExceptionList.*[1];
    WHILE start.Number IS NOT NULL DO 
       SET Error = start.Number;
          IF Error = 3001 THEN
             SET Text = SUBSTRING(start.Insert.Text FROM 1 FOR 250);
             ELSE
             SET Text = SUBSTRING(start.Text FROM 1 FOR 250);
          END IF;
       SET Label = start.Label;
       SET Place = POSITION('.' IN Label); 
       SET LastPlace = Place;
          WHILE Place <>0 DO
             SET Label=SUBSTRING(Label FROM (Place+1));
             SET Place=POSITION('.' IN Label); 
             SET LastPlace = LastPlace + Place; 
          END WHILE;
       SET Label=start.Label;
       SET FlowName=SUBSTRING(Label FROM 1 FOR (LastPlace-1));
       SET NodeName=SUBSTRING(Label FROM (LastPlace+1));
    -- Move start to the last child of the field to which it currently points          
       MOVE start LASTCHILD;
    END WHILE;
    INSERT INTO Database.ERRORS(MSGID,TEXT,ERRORNUM, ERRORDATE,MSGDATA,FLOWNAME,NODENAME)
    VALUES(CAST(Root.MQMD.MsgId AS BLOB),Text,Error,CURRENT_TIMESTAMP,BITSTREAM(Root),
    FlowName,NodeName);
          RETURN TRUE;
       END;
    END MODULE;

Sie können jetzt den Hauptnachrichtenfluss erstellen, der diesen untergeordneten Nachrichtenfluss enthält: Den Hauptnachrichtenfluss erstellen

Symbol für die Hauptseite   Zurück zur Erstellung des Beispielprogramms 'Error Handler'