Kapitel 9 - Warteschlangen und Nachrichtenübertragung

Die neue Warteschlangenfunktion wurde in Version 4.2 implementiert, um mehrere Warteschlangentypen und mehrere Nachrichtenübertragungsprotokolle zu verwalten. Eine Warteschlange dient als Gateway zur Handhabung der Übertragung eingehender und ausgehender Nachrichten in Verbindung mit externen Quellen und Zielen, einschließlich EAI-Plattformen und Web-Servern.

Hinweis: Weitere Informationen zum Einrichten eines Frameworks für die Nachrichtenübertragung finden Sie im Abschnitt "Framework für die Nachrichtenübertragung implementieren".

Die folgenden Begriffe werden zu Referenzzwecken definiert:

Mit der neuen Warteschlangenfunktion können Nachrichten als Teil eines Prozesses verwendet werden, z. B. indem beim Import oder Export von Jobs Statusnachrichten an alle erforderlichen Parteien gesendet werden.


Warteschlangenkonsole

Auf die Warteschlangenkonsole zugreifen

1. Verwenden Sie die folgenden Menüoptionen: Manager für elektronisches Teamwork > Warteschlangen > Warteschlangenkonsole. Die Warteschlangenkonsole wird angezeigt.

Warteschlangendetails anzeigen

Wenn Sie die Details einer Warteschlange anzeigen möchten, klicken Sie auf den Warteschlangennamen, und die Anzeige 'Warteschlangendetails' wird geöffnet. Die folgenden Informationen werden zur Verfügung gestellt:

Nachricht in Warteschlange anzeigen

Die Warteschlangenkonsole hat eine Spalte "Nachrichten", die einen Hyperlink zu der Anzahl der Nachrichten hat, die von einer Warteschlange empfangen wurden. Klicken Sie auf die Anzahl der Nachrichten, um die Nachrichteninhalte anzuzeigen.

Eine Nachricht in einer Warteschlange suchen

1. Wenn Sie eine Nachricht in einer Warteschlange suchen möchten, verwenden Sie die folgenden Menüoptionen: Manager für elektronisches Teamwork > Warteschlangen > Nachrichtenkonsole. Die Anzeige 'Suche nach Warteschlangennachrichten' wird geöffnet.

2. Wählen Sie einen Wert für die folgenden Felder aus:

3. Klicken Sie auf Suchen. Die Ergebnisse werden unten in der Tabelle mit den Warteschlangennachrichten angezeigt.

Warteschlange erstellen

1. Wählen Sie den folgenden Menüpfad aus: Manager für elektronisches Teamwork > Warteschlangen > Neue Warteschlange.

2. Geben Sie die erforderlichen Informationen an:

Name der Warteschlange: Geben Sie einen Namen für die Warteschlange ein.

Beschreibung: Geben Sie eine Beschreibung für die Warteschlange ein.

Protokoll: Wählen Sie aus der Liste der Nachrichtenübertragungsprotokolle das Protokoll aus, mit dem die externe Quelle mit der Warteschlange verbunden wird.

Script: Wählen Sie aus einer Liste vordefinierter Scripts aus, die ausgeführt werden können, um Nachrichten von der bzw. an die Warteschlange weiterzuleiten. Eine typische Nachricht für Ziele oder Quellen enthält:


Framework für die Nachrichtenübertragung implementieren

Die Implementierung des Frameworks für Nachrichtenübertragung in WebSphere Product Center ermöglicht die Integration mit den folgenden Zielplattformen:

Die gewählte Plattform sollte einen zuverlässigen Transportmechanismus und eine konsistente Schnittstelle für die Kommunikation von Programmen über unterschiedliche Systeme oder Plattformen bieten.

Das Framework für die Nachrichtenübertragung von WebSphere Product Center wurde so konzipiert, dass die folgenden Prozesse unterstützt werden:

WebSphere Product Center bietet die Funktionalität, XML-Dokumente zu analysieren und zu erstellen, sowie Nachrichten an EAI-Plattformwarteschlangen zu senden und von diesen Nachrichten zu empfangen. Eine Nachricht wird als ein XML-Dokument definiert, das von einer externen Quelle zur Verfügung gestellt wird. Sämtliche Funktionalität ist für die Scriptingsteuerkomponente von WebSphere Product Center zugänglich. Wenn Sie die Interaktion zwischen WebSphere Product Center und dem EAI-Plattformadapter aktivieren möchten, ist es notwendig, Scripts zu installieren, die sich der Vorteile dieser Funktionalität bedienen.

WebSphere Product Center unterstützt Warteschlangen, die als Empfangs- und Übertragungspunkt für die Nachrichtenübertragung dienen. Die WebSphere Product Center-Warteschlange dient als Gateway zur Handhabung der Übertragung eingehender und ausgehender Nachrichten in Verbindung mit externen Quellen und Zielen. Jede Quelle wird von den Scriptingoperationen in WebSphere Product Center unterstützt.

Eine Warteschlange enthält die folgende Funktionalität:

Ermöglicht das Einrichten eines Nachrichtenübertragungsprotokolls, das die externe Nachrichtenquelle mit der Warteschlange verbindet, und enthält die folgenden Nachrichtenübertragungsprotokolle:

Ausführen eines Scripts zur Weiterleitung von Nachrichten an die bzw. von der Warteschlange. Typische Nachrichtenziele und -quellen enthalten Folgendes:

Die folgende Liste beschreibt das Framework für die Nachrichtenübertragungsfunktionalität:

Damit dieser Prozess funktioniert, muss ein Framework für die Nachrichtenübertragung erstellt werden.

Framework für die Nachrichtenübertragung erstellen

Der folgende Prozess beschreibt eine empfohlene Methode für die Integration eines EAI-Plattform-Frameworks. Dieser Prozess kann je nach den spezifischen Anforderungen angepasst werden.

Nachricht empfangen

Dieser Abschnitt beschreibt den Prozess beim Empfangen einer Nachricht, die eine Elementgruppe enthält, sowie das Senden von Bestätigungsnachrichten nach Erhalt. Die beiden Prozesse für die Konfiguration und die Ausführungszeit unterstützen den Prozess zum Empfangen einer Nachricht. Der Prozess ist generisch und für die meisten Zwecke anwendbar.

Konfiguration

Ein technischer Analyst von Geschäftsprozessen erstellt Folgendes:

Ein technischer Analyst von Geschäftsprozessen erstellt eine Eingangswarteschlange, die ein Script enthält. Das Script unterstützt drei Funktionen: Nachrichtenempfang, Parsing des Hauptteils einer Nachricht, Weiterleitung.

Nachrichtenempfang

Der Scriptbereich für den Nachrichtenempfang unterstützt die folgende Funktionalität:

Parsing des Hauptteils einer Nachricht

Der Scriptbereich für das Nachrichtenparsing unterstützt die folgende Funktionalität:

Nachrichtenweiterleitung

Der Scriptbereich für die Weiterleitung unterstützt die folgende Funktionalität:

Hinzufügen/Ändern/Löschen von Elementen in der Elementgruppe des Zielkatalogs.

  • Ein technischer Analyst von Geschäftsprozessen konfiguriert einen Bestätigungsablauf für das Senden von Empfangsbestätigungsnachrichten. Der Ablauf enthält die folgende Funktionalität:
  • Entnimmt in einem Schritt des Bestätigungsablaufs den neuen Datensatz aus dem Nachrichtenkatalog und fügt diesen in den Bereich für elektronisches Teamwork ein.
  • Im nächsten Schritt des Bestätigungsablaufs wird eine Bestätigungsnachricht an die Nachrichtenquelle gesendet, die die Nachrichten-ID, die Absender-ID, Datum und Uhrzeit und sonstige, seitens der Nachrichtenquelle erforderlichen Befehle enthält (Beispiel: Received).
  • Im nächsten Schritt des Bestätigungsablaufs wird der Datensatz des Nachrichtenkatalogs eingefügt.

Laufzeit

Wenn die Konfiguration ordnungsgemäß eingerichtet wurde, sollten die folgenden Laufzeitereignisse auftreten:

1. Warteschlange empfängt Nachricht über Nachrichtenempfangsbereich des Warteschlangenscripts.

2. Nachrichtenempfangsbereich des Warteschlangenscripts analysiert Hauptteil der Nachricht, um Nachrichtentyp, Nachrichten-ID und Absender-ID zu erhalten.

3. Nachrichtenempfangsbereich des Warteschlangenscripts erstellt Datensatz im Nachrichtenkatalog, welcher Nachrichtentyp, Nachrichten-ID, Absender-ID und Datum und Uhrzeit enthält.

4. Nachrichtenempfangsbereich des Warteschlangenscripts entnimmt in einem Bestätigunsablaufschritt neuen Datensatz aus dem Nachrichtenkatalog und fügt diesen in den Bereich für elektronisches Teamwork ein.

5. In einem nächsten Schritt innerhalb des Bestätigungsablaufs wird eine Bestätigungsnachricht an die Nachrichtenquelle gesendet, die die Nachrichten-ID, die Absender-ID, Datum und Uhrzeit und sonstige, seitens der Nachrichtenquelle erforderlichen Befehle enthält (Beispiel: Received).

6. Anschließend wird im nächsten Schritt des Bestätigungsablaufs der Datensatz des Nachrichtenkatalogs eingefügt.

7. Parsingbereich für den Hauptteil einer Nachricht des Warteschlangenscripts analysiert den Hauptteil der Nachricht (und verwendet eine neue, unten beschriebene Scriptoperation) in Bezug auf Zuordnungsnamen und Zielkatalognamen für die Übergabe einer Elementgruppe.

8. Weiterleitungsbereich des Warteschlangenscripts übernimmt das Hinzufügen/Modifizieren/Löschen von Elementen der Elementgruppe des Zielkatalogs, und verwendet dazu vorhandene Scriptoperationen zum Hinzufügen/Modifizieren/Löschen von Katalogen.

Eingangs-/Ausgangswarteschlangen für WebSphere Product Center erstellen

Die Eingangs- und Ausgangswarteschlangen von WebSphere Product Center werden über die Warteschlangenkonsole erstellt. Bevor eine Warteschlange erstellt wird, muss ein Auslöserscript über die Scriptkonsole erstellt werden. Die Auslöserscripts werden im Dropdown-Feld für den Auslöserscriptpfad der Anzeige 'Neue Warteschlange' angezeigt.

1. Klicken Sie in der Warteschlangenkonsole auf Neu.

Geben Sie in der Anzeige 'Warteschlangendetails' einen Warteschlangennamen und eine Beschreibung ein; wählen Sie ein Protokoll und einen Auslöserscriptpfad aus. Das Auslöserscript wird in der Scriptkonsole als Typ "Nachrichtenwarteschlangenprozessor" erstellt.

3. Klicken Sie auf Speichern.


Scriptingoperationen für die Nachrichtenübertragung

Die Scriptingoperationen von WebSphere Product Center sind eine Möglichkeit, WebSphere Product Center-Scriptanwendungen zu schreiben und Funktionen in den Argumenten aller Scriptingoperationen zu definieren. Die Scriptingoperationen, die im folgenden Abschnitt angegeben werden, werden verwendet, um die Nachrichtenübertragungsfunktion mit Hilfe von WebSphere Product Center und MQ oder JMS zu unterstützen. Diese Methode ermöglicht den Import und Export von Nachrichten über eine externe Warteschlange.

Hinweis: Änderungen an den in diesem Abschnitt aufgeführten Scriptingoperationen bleiben vorbehalten. Die aktuellsten Operationen zum Erstellen von Scripts finden Sie in der Script-Sandbox.

MQ-Scriptingoperationen

Wenn Sie eine Scriptanwendung erstellen, gibt die Scriptingoperation mqGetQueueMgr einen Handler an MQQueueManager zurück. Mit diesem Handle können mehrere MQ-Operationen ausgeführt werden, bevor mqDisconnect aufgerufen wird, den Handle freizugeben.

mqGetQueueMgr

mqDisconnect

mqSendTextMsg

Hinweis: Wenn Sie versuchen, eine Antwort an eine bestehende Nachricht mit 'mqSendReply' zu senden, wird ein Fehler zurückgegeben, falls 'mqSendTextMsg' verwendet wird. Verwenden Sie 'mqSendTextMsgWithReply', um dies zu vermeiden.

mqSendTextMsgWithReply

mqGetTextFromMsg

mqGetReceivedMsg

Hinweis: Wenn Nachrichten abgerufen werden, werden sie aus der Warteschlange entfernt. Wenn keine Nachrichten-ID angegeben wurde, wird die erste Nachricht in der Warteschlange empfangen.

 mqSendReply

mqSendReplyWithStatus

Hinweis: Nur ein einziger Statuswert kann verwendet werden.  

mqGetXMLMessageContent

Hinweis: Verwenden Sie diese Methode, um eingehende Nachrichten zu analysieren.

 mqGetResponseToMsg

mqGetMessageDiagnostics

mqGetMessageId

mqGetReceivedMsgByMessageID

JMS-Scriptoperationen

Wenn Sie eine Scriptanwendung erstellen, gibt die Scriptoperation jmsGetConnectionFactory einen Handler an QueueConnectionFactory zurück. Mit diesem Handle können mehrere JMS-Operationen ausgeführt werden, bevor jmsDisconnect aufgerufen wird, den Handle freizugeben.

jmsGetContext

jmsGetConnectionFactory

jmsGetMQConnectionFactory

jmsGetQueueByName

jmsGetQueueConnection

jmsGetQueueSession

jmsDisconnect

jmsCreateTextMsg

jmsSendMsg

jmsReceiveMsgFromQueue

jmsGetTextFromMsg

jmsGetMessageID

jmsGetMessageCorrelationID

jmsGetMessageProperties

jmsSendMsgToQueue

jmsSetMessageText


Web-Services

Neuen Web-Service erstellen

Wählen Sie den folgenden Menüpfad aus: Manager für elektronisches Teamwork > Web-Services > Neuer Web-Service. Die Anzeige "Web-Service-Detail" wird geöffnet.

Geben Sie die entsprechenden Informationen in die folgenden Felder ein:

Name des Web-Service Geben Sie den Namen des Web-Service ein. Dieser Name bildet einen Teil der URL-Adresse des SOAP-Service. Er darf keine Leerzeichen enthalten. Beispiel:
Beschreibung des Web-Service Geben Sie eine Beschreibung für den Web-Service ein.
Protokoll Das für den Web-Service verwendete Protokoll. Zurzeit ist SOAP over HTTP das einzig unterstützte Protokoll. Der Standardwert ist 'SOAP_HTTP'.
URL

Gibt die URL-Adresse an, über die auf den Service zugegriffen werden kann. Dieses Feld wird automatisch ausgefüllt, wenn der Web-Service gespeichert wurde.

 

WSDL-URL Die URL-Adresse, über die auf die WSDL-Datei für den Web-Service zugegriffen werden kann. Dieses Feld wird automatisch ausgefüllt, wenn der Web-Service gespeichert wurde.
WSDL Geben Sie WSDL für diesen Service ein. Ein WSDL-Dokument ist eine Beschreibung der Schnittstelle, der URL-Adresse und des Protokolls des Service im XML-Format. Sie müssen dieses Dokument manuell eingeben. Unten wird jedoch ein WSDL-Beispieldokument bereitgestellt. Sie müssen gültiges XML für den Web-Service eingeben, um das Dokument erfolgreich speichern zu können.
Implementierungsscript Geben Sie ein Trigo-Script ein, das diesen Service implementiert. Die eingehenden Parameter für den Service sind über die Feldgruppenvariable "soapParams" verfügbar. Der Rückgabewert für den Service muss eine Zeichenfolge (String) sein und an die Ausgabevariable "out" übergeben werden. Zur Rückgabe eines SOAP-Fehlers schreiben Sie den Fehlercode in die Ausgabevariable "soapFaultCode" und die Fehlernachricht in die Ausgabevariable "soapFaultMsg". Ein Beispiel für ein Implementierungsscript wird unten bereitgestellt.
Anforderungen speichern? Wenn diese Option ausgewählt ist, speichert Trigo die Parameter aller eingehenden Anforderungen im Dokumentspeicher. Auf sie kann über die Transaktionskonsole zugegriffen werden.
Antworten speichern? Wenn diese Option ausgewählt ist, speichert Trigo die Inhalte aller Antworten im Dokumentspeicher. Auf sie kann über die Transaktionskonsole zugegriffen werden.
Implementiert Wenn diese Option ausgewählt wird, wird der Service implementiert. Ansonsten steht der Service nicht zur Verfügung.

Beispiele für ein Implementierungsscript und ein WSDL-Dokument

Der folgende Entwurf der Beispiele für das Implementierungsscript und das WSDL-Dokument überprüft die Anzahl der Parameter der eingehenden SOAP-Anforderung. Wenn genau vier Parameter vorhanden sind, gibt er eine Zeichenfolge mit einer Liste dieser Parameter zurück. Wenn mehr oder weniger als vier Parameter vorhanden sind, löst er einen SOAP-Fehler aus.

Implementierungsscript

nParams = soapParams.size();
if (nParams != 4)
  {
    soapFaultCode.writeln("WRONG_NUM_PARAMS");
    soapFaultMsg.writeln("Wrong number of parameters.  This service requires 4.  You have " + nParams + " parameters.");
  }
else
  {
    out.writeln("Success.");
    for (i = 0; i < nParams; i++)
    {
      out.writeln("Parameter " + (i + 1) + " is " + soapParams[i]);
    }
  }

WSDL

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://my.trigo-instance.com/soap/services/CheckParams"
                  xmlns="http://schemas.xmlsoap.org/wsdl/"
                  xmlns:apachesoap="http://xml.apache.org/xml-soap"
                  xmlns:impl="http://my.trigo-instance.com/soap/services/CheckParams"
                  xmlns:intf="http://my.trigo-instance.com/soap/services/CheckParams"
                  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <wsdl:message name="invokeRequest">
    <wsdl:part name="param1" type="xsd:string"/>
    <wsdl:part name="param2" type="xsd:string"/>
    <wsdl:part name="param3" type="xsd:string"/>
    <wsdl:part name="param4" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="invokeResponse">
    <wsdl:part name="invokeReturn" type="xsd:string"/>
  </wsdl:message>
  <wsdl:portType name="CheckParams">
    <wsdl:operation name="invoke" parameterOrder="param1 param2 param3 param4">
      <wsdl:input message="intf:invokeRequest" name="invokeRequest"/>
      <wsdl:output message="intf:invokeResponse" name="invokeResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="CheckParamsSoapBinding" type="intf:CheckParams">
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="invoke">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="invokeRequest">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                       namespace="http://DefaultNamespace"
                       use="encoded"/>
      </wsdl:input>
      <wsdl:output name="invokeResponse">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                       namespace="http://my.trigo-instance.com/soap/services/CheckParams"
                       use="encoded"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="CheckParamsService">
    <wsdl:port binding="intf:CheckParamsSoapBinding"
               name="CheckParams">
      <wsdlsoap:address location="http://my.trigo-instance.com/soap/services/CheckParams"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>