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.

Nachrichten in einer WebSphere MQ-Nachrichtengruppierung senden

Der MQOutput-Knoten kann mehrere Nachrichten senden, die eine WebSphere MQ-Nachrichtengruppierung bilden. Konfigurieren Sie einen Compute- oder JavaCompute-Knoten, um in den MQMD-Feldern Nachrichtengruppierungsoptionen anzugeben.

Der Nachrichtenfluss muss die folgenden MQMD-Felder festlegen:
  • GroupId
  • MsgSeqNumber
  • MsgFlags
Sie können das folgende Beispiel eines ESQL-Codes in einem Compute-Knoten verwenden, in dem gezeigt wird, wie Sie diese Felder festlegen:
DECLARE MSGNUM INT 0;
  DECLARE MSGTOTAL INT 5;
  WHILE MSGNUM < MSGTOTAL DO
    SET MSGNUM = MSGNUM + 1;
    CALL CopyMessageHeaders();
    -- Manually set the groupId since we cant ask the queue manager to generate one.
    -- the UUIDASBLOB function could be used here to generate one, but this must be done
    -- outside the loop to keep the same groupId throughout!
    SET OutputRoot.MQMD.GroupId = X'000000000000000000000000000000000000000000000001';
    SET OutputRoot.MQMD.MsgSeqNumber = MSGNUM;
    SET OutputRoot.MQMD.MsgFlags = MQMF_MSG_IN_GROUP;
    IF (MSGNUM = MSGTOTAL) THEN
      SET OutputRoot.MQMD.MsgFlags = MQMF_LAST_MSG_IN_GROUP;
    END IF;
    SET OutputRoot.XML.TestCase = MSGNUM;
    PROPAGATE;
  END WHILE;
  RETURN FALSE;
Sie können das folgende Beispiel eines Java™-Codes in einem JavaCompute-Knoten verwenden, in dem gezeigt wird, wie Sie diese Felder festlegen:
public class mq_group_java_JavaCompute extends MbJavaComputeNode {
      public void evaluate(MbMessageAssembly assembly) throws MbException {
        MbOutputTerminal out = getOutputTerminal("out");
        int MSGTOTAL = 5;
        for(int MSGNUM = 1 ; MSGNUM <= MSGTOTAL;MSGNUM++){
           MbMessage newMessage = new MbMessage();
           MbElement root = newMessage.getRootElement();
           MbElement mqmd = root.createElementAsFirstChild("MQMD");
           mqmd.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, 
           "GroupId", new byte[]{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1});
           mqmd.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "MsgSeqNumber", MSGNUM);
           if (MSGNUM == MSGTOTAL){
               mqmd.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, 
               "MsgFlags", 16); // MQMF_LAST_MSG_IN_GROUP 0x00000010
           }
           else{
               mqmd.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, 
               "MsgFlags", 8);  // MQMF_MSG_IN_GROUP      0x00000008
           }
           MbElement xmlnsc = root.createElementAsLastChild("XMLNSC");
           MbElement body = xmlnsc.createElementAsLastChild(MbElement.TYPE_NAME,"TestCase",null);
           body.setValue(MSGNUM);
           MbMessageAssembly newAssembly = new MbMessageAssembly(assembly,newMessage);
           out.propagate(newAssembly);
        }
    }
}

Wenn der Nachrichtenfluss mehrere Nachrichten aus einer Eingabenachricht sendet, kann er einen GroupId-Wert erstellen, den MsgSeqNumber-Wert erhöhen und das Feld MsgFlags festlegen. Mit diesen Beispielen für ESQL- und Java-Code wird gezeigt, wie Sie diese Werte festlegen können. Wenn der Nachrichtenfluss jedoch mehrere Nachrichten aus mehr als einer Eingabenachricht sendet, muss er die GroupId- und MsgSeqNumber-Werte zwischen den Nachrichtenflussinstanzen speichern; dies ist durch die Nutzung gemeinsamer Variablen möglich.

Weitere Informationen zur Nachrichtengruppierung finden Sie im Abschnitt Application Programming Guide im WebSphere MQ Version 7 Information Center online. Weitere Informationen zu den WebSphere MQ-Feldern, die in der Nachrichtengruppierung wichtig sind, finden Sie im Abschnitt Application Programming Reference im WebSphere MQ Version 7 Information Center online.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

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


TaskthemaTaskthema | Version 8.0.0.5 | ac25710_