Den Hauptnachrichtenfluss erstellen

Der Hauptnachrichtenfluss für den Mustercode 'WebSphere Service Registry and Repository (WSRR) Connectivity' wird zur Verfügung gestellt. Wenn Sie den Nachrichtenfluss jedoch selbst erstellen möchten, befolgen Sie die folgenden Anweisungen:

  1. Erstellen Sie einen neuen Nachrichtenfluss namens WSRR_Connectivity.msgflow im Nachrichtenbrokerprojekt 'My WSRR Connectivity Message Flows' (Meine WSRR-Konnektivitätsnachrichtenflüsse), das Sie beim Erstellen des 'Web-Services'-Nachrichtenflusses erstellt haben.
    Anweisungen hierzu finden Sie in der Dokumentation zu WebSphere Message Broker im Abschnitt Nachrichtenfluss erstellen.
  2. Fügen Sie im Nachrichtenflusseditor die in der folgenden Tabelle aufgelisteten Knoten hinzu und benennen Sie diese um.
    Anweisungen hierzu finden Sie in der Dokumentation von WebSphere Message Broker im Abschnitt Nachrichtenflussknoten hinzufügen.
    Palettenfächer Knotentyp Knotenname
    WebSphere MQ MQInput WSRR_IN
    Transformation Rechnen SetVersion
    WebServices EndpointLookup Endpoint Lookup One
    WebServices SOAPRequest SOAP Request
    Transformation Rechnen InformFailure
    Transformation Rechnen InformWSResult
    Transformation Rechnen InformNoMatch
    WebSphere MQ MQOutput WSRR_OUT
  3. Verbinden Sie die Knoten wie in der folgenden Tabelle angegeben.
    Anweisungen hierzu finden Sie in der Dokumentation zu WebSphere Message Broker im Abschnitt Nachrichtenflussknoten verbinden.
    Anhand des Diagramms unter Informationen zum Mustercode 'WebSphere Service Registry and Repository (WSRR) Connectivity' können Sie überprüfen, ob die Knoten korrekt verbunden sind.
    Knotenname Terminal Mit diesem Knoten verbinden
    WSRR_IN Ausgangsterminal SetVersion
    SetVersion Ausgangsterminal Endpoint Lookup One
    Endpoint Lookup One Ausgangsterminal SOAP Request
    Fehlerterminal InformFailure
    NoMatch InformNoMatch
    SOAP Request Ausgangsterminal InformWSResult
    FehlerWSRR_OUT
    InformFailure Ausgangsterminal WSRR_OUT
    InformWSResult Ausgangsterminal WSRR_OUT
    InformNoMatch Ausgangsterminal WSRR_OUT
  4. 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.
    Die entsprechenden Anweisungen finden Sie in der WebSphere Message Broker-Dokumentation unter Nachrichtenflussknoten konfigurieren.
    Knotenname Seite Eigenschaft Wert
    WSRR_IN Grundeinstellung Name der Warteschlange WSRR_IN
    Syntaxanalyse der Eingabenachricht Nachrichtendomäne XMLNSC : Für XML-Nachrichten
    SetVersion Grundeinstellung Rechenmodus Lokale Umgebung und Nachricht
    Endpoint Lookup One Grundeinstellung Name des Porttyps DemoCustomer
    Namespace des Porttyps http://demo.sr.eis.ibm.com
    Version des Porttyps 1.0
    SOAP Request Grundeinstellung WSDL-Dateiname Suchen Sie die Datei DemoCustomer_v10.wsdl, die Sie zuvor in den Nachrichtensatz 'WSRR-Konnektivität' (WSRR Connectivity) importiert haben.
    Wenn sie ausgewählt wird, füllt diese Datei die anderen Eigenschaften in der Seite 'Grundeinstellung' aus.
    Bindungsoperation Setzen Sie diese Eigenschaft auf updateCustomer.
    HTTP-Transport URL des Webdienstes Geben Sie einen beliebigen Wert ein, z. B.: http://dummy.
    Diese Eigenschaft wird zur Laufzeit mit der Web-Service-URL des WSDL-Dokuments überschrieben, das aus dem WebSphere Service Registry and Repository abgerufen wurde.
    WSRR_OUT Grundeinstellung Name der Warteschlange WSRR_OUT
  5. Klicken Sie doppelt auf den 'SetVersion'-Knoten, um den ESQL-Editor zu öffnen. Kopieren Sie die im Folgenden wiedergegebenen ESQL-Code-Module in die ESQL-Datei und speichern Sie dann die Datei.
    Weitere Informationen finden Sie in der Dokumentation zu WebSphere Message Broker im Abschnitt ESQL erstellen.
    DECLARE soapenv NAMESPACE 'http://schemas.xmlsoap.org/soap/envelope/';
    
    CREATE COMPUTE MODULE WSRR_Connectivity_SetVersion
      CREATE FUNCTION Main() RETURNS BOOLEAN
        BEGIN
          -- Set the LE to the over-rides specified in the input data
          -- Note if the input message does not contain a Version tag, the LE will not be written
          SET OutputLocalEnvironment.ServiceRegistryLookupProperties.Version = InputRoot.XMLNSC.soapenv:Envelope.soapenv:Body.Request.Version;
    
          -- Store the MQMD to rebuild after HTTP Response node
          SET Environment.MQMD = InputRoot.MQMD;		
    
          CALL CopyEntireMessage();
          RETURN TRUE;
        END;
    
      CREATE PROCEDURE CopyEntireMessage() BEGIN
        SET OutputRoot = InputRoot;
      END;
    END MODULE;
    
    
    CREATE COMPUTE MODULE WSRR_Connectivity_InformWSResult
      CREATE FUNCTION Main() RETURNS BOOLEAN
      BEGIN
        CALL CopyEntireMessage();
        -- The response from the WebService contains a HTTP Header
        -- Remove the HTTP header and create a MQMD header in order to propagate the message to a MQ output node
        SET OutputRoot.HTTPResponseHeader = NULL;
        CREATE NEXTSIBLING OF OutputRoot.Properties DOMAIN 'MQMD';
        -- Retrieve the MQMD that was stored earlier
        SET OutputRoot.MQMD = Environment.MQMD;
    
        RETURN TRUE;
      END;
    
      CREATE PROCEDURE CopyEntireMessage() BEGIN
        SET OutputRoot = InputRoot;
      END;
    
    END MODULE;
    
    
    CREATE COMPUTE MODULE WSRR_Connectivity_InformNoMatch
      CREATE FUNCTION Main() RETURNS BOOLEAN
      BEGIN
        CALL CopyMessageHeaders();
        CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC';
        SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)Version = '1.0';
        SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)Encoding = 'UTF-8';
    		
        CREATE LASTCHILD OF OutputRoot.XMLNSC NAME 'LookupResults';
        SET OutputRoot.XMLNSC.LookupResults.WSRR_Request = InputRoot.XMLNSC.WSRR_Request;
        SET OutputRoot.XMLNSC.LookupResults.ServiceRegistry = 'No matching services!';
    
        RETURN TRUE;
      END;
    
      CREATE PROCEDURE CopyMessageHeaders() BEGIN
        DECLARE I INTEGER 1;
        DECLARE J INTEGER;
        SET J = CARDINALITY(InputRoot.*[]);
        WHILE I < J DO
          SET OutputRoot.*[I] = InputRoot.*[I];
          SET I = I + 1;
        END WHILE;
      END;
    
    END MODULE;
    
    
    CREATE COMPUTE MODULE WSRR_Connectivity_InformFailure
      CREATE FUNCTION Main() RETURNS BOOLEAN
      BEGIN
        CALL CopyMessageHeaders();
        CREATE LASTCHILD OF OutputRoot DOMAIN 'XMLNSC';
        SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)Version = '1.0';
        SET OutputRoot.XMLNSC.(XMLNSC.XmlDeclaration)*.(XMLNSC.Attribute)Encoding = 'UTF-8';
    		
        CREATE LASTCHILD OF OutputRoot.XMLNSC NAME 'LookupResults';
        SET OutputRoot.XMLNSC.LookupResults.WSRR_Request = InputRoot.XMLNSC.WSRR_Request;
        SET OutputRoot.XMLNSC.LookupResults.ServiceRegistry = 'Failure to retrieve Service from WSRR!';
        SET OutputRoot.XMLNSC.LookupResults.Exception = InputExceptionList;		
    		
        RETURN TRUE;
      END;
    
      CREATE PROCEDURE CopyMessageHeaders() BEGIN
        DECLARE I INTEGER 1;
        DECLARE J INTEGER;
        SET J = CARDINALITY(InputRoot.*[]);
        WHILE I < J DO
          SET OutputRoot.*[I] = InputRoot.*[I];
          SET I = I + 1;
        END WHILE;
      END;
    
    END MODULE;
    
  6. Speichern Sie die ESQL-Datei.
  7. Stellen Sie sicher, dass die ESQL-Moduleigenschaft im 'SetVersion'-Knoten auf das Modul 'WSRR_Connectivity_SetVersion' verweist.
  8. Wiederholen Sie den oben genannten Schritt für die folgenden Knoten und stellen Sie die ESQL-Moduleigenschaft entsprechend dem jeweiligen Modul in der ESQL-Datei ein:
  9. Speichern Sie den Nachrichtenfluss.

Jetzt können Sie die Warteschlangen erstellen und den Nachrichtenfluss ausführen. Weitere Informationen hierzu finden Sie im Abschnitt Warteschlangen erstellen.

Zurück zur Erstellung des Mustercodes 'WebSphere Service Registry and Repository Connectivity'