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:
- Warteschlange: Ein Konstrukt in WebSphere Product Center, das als Empfangs- und Übertragungspunkt für Nachrichten dient. Jede Warteschlange wird durch ein Script unterstützt.
- Nachricht: Ein XML-Dokument, das von UCCnet, EAI-Plattformen, Datenpools oder anderen Nachrichtenquellen zur Verfügung gestellt wird.
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.
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:
- Name der Warteschlange
- Beschreibung
- Protokoll
- Script
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:
- Eingangsdatum von:
- Eingangsdatum bis:
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:
- Einen Bereich für elektronisches Teamwork, der von einem Eingangs- oder Ausgangsscript im Ablauf unterstützt wird.
- Einen Katalog, der von einem Script für die Vorbearbeitung, die Nachbearbeitung, oder einem Script nach dem Speichervorgang unterstützt wird.
Die Implementierung des Frameworks für Nachrichtenübertragung in WebSphere Product Center ermöglicht die Integration mit den folgenden Zielplattformen:
- IBM WBI
- SeeBeyond
- Tibco
- WebMethods
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:
- Empfangen einer Nachricht, die eine Elementgruppe enthält, sowie das Versenden von Bestätigungsnachrichten nach Erhalt.
- Senden einer Nachricht, die eine Elementgruppe enthält, sowie das Empfangen von Bestätigungsnachrichten nach der Übertragung.
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:
- MQ
- JMS Punkt-zu-Punkt (Point-to-Point)
- JMS Veröffentlichen und Abonnieren (Publish and Subscribe)
- HTTP
- HTTP/S
Ausführen eines Scripts zur Weiterleitung von Nachrichten an die bzw. von der Warteschlange. Typische Nachrichtenziele und -quellen enthalten Folgendes:
- Einen Bereich für elektronisches Teamwork, der von einem Eingangs- oder Ausgangsscript in einem Ablaufschritt unterstützt wird.
- Einen Katalog, der von einem Script für die Vorbearbeitung, die Nachbearbeitung, oder einem Script nach dem Speichervorgang unterstützt wird.
Die folgende Liste beschreibt das Framework für die Nachrichtenübertragungsfunktionalität:
- Eine externe Quelle sendet eine Nachricht an die EAI-Plattform. Die Art und Weise, wie dies gehandhabt wird, variiert je nach externer Quelle und hat keine Auswirkung darauf, wie WebSphere Product Center die Nachricht abrufen wird.
- Die Konfiguration der EAI-Plattform sollte eine Eingangs- und eine Ausgangswarteschlange einbeziehen. Diese Konfiguration wird von anderen Herstellern ausgeführt. Die einzigen Informationen, die WebSphere Product Center für das Abrufen und den Empfang von Nachrichten benötigt, ist die Identifikation der Warteschlangen, auf die von WebSphere Product Center zugegriffen wird.
- Da die Dateien in die EAI-Plattformwarteschlange gestellt werden, kann eine entsprechende in WebSphere Product Center eingerichtete Warteschlange die Nachricht über ein unterstütztes Protokoll (MQ, HTTP/s, oder JMS) abrufen.
- Wenn Sie WebSphere Product Center-Scripts verwenden, wird der Hauptteil der Nachricht syntaktisch analysiert, um den Nachrichtentyp, die Nachrichten-ID und die Nachrichtenquelle zu erhalten. Diese Informationen werden an einen Zielkatalog in WebSphere Product Center weitergeleitet, der zur Aufnahme aller Nachrichten erstellt wurde.
- Die Ereignisse, die in D auftreten, werden über einen Ablauf protokolliert, und wenn die Nachricht erfolgreich aufgezeichnet wurde, löst ein Ereignis den Bestätigungsablauf aus, um den neuen Datensatz vom Nachrichtenkatalog in die Konfiguration des Bereichs für elektronisches Teamwork zu versetzen.
- Der Bestätigungsablauf sendet eine Bestätigungsnachricht an die Nachrichtenquelle. Anschließend stellt der Bestätigungsablauf die Nachricht wieder in den Katalog zurück.
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:
- Beschaffen der Nachricht von der Quelle über ein unterstütztes Protokoll, wie MQ, HTTP/S, oder JMS.
- Parsing des Hauptteils einer Nachricht, um den Nachrichtentyp, die Nachrichten-ID und die Nachrichtenquelle zu beschaffen.
- Erstellen eines Datensatzes im Nachrichtenkatalog, der den Nachrichtentyp, die Nachrichten-ID, die Absender-ID und Datum und Uhrzeit enthält.
- Auslösen eines Ereignisses für den Bestätigungsablauf. Weiter unten finden Sie Informationen über den Bestätigungsablauf.
Parsing des Hauptteils einer Nachricht
Der Scriptbereich für das Nachrichtenparsing unterstützt die folgende Funktionalität:
- Enthält als Parameter den Namen der Quelle-Ziel-Zuordnung und den Zielkatalognamen.
- Analysiert den Hauptteil einer Nachricht in Bezug auf den Namen der Quelle-Ziel-Zuordnung und den Zielkatalognamen für die Übergabe einer Elementgruppe.
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.
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
- Prototyp: MQQueueManager mqGetQueueMgr(String hostname, String port, String channel, String queueMgrName)
- Beschreibung: Erstellt einen neuen MQ-Warteschlangenmanager mit den betreffenden Merkmalen, und gibt diesen wieder zurück.
mqDisconnect
- void MQQueueManager::mqDisconnect()
- Trennt die Verbindung mit dem betreffenden Warteschlangenmanager.
mqSendTextMsg
- Prototyp: MQMessage MQQueueManager::mqSendTextMsg(String msgText, String queueName, String queueOpenOptions, String messagePutOptions)
- Beschreibung: Sendet eine Nachricht, die in der Zeichenfolge msgText enthalten ist, über queueName. Gibt die MQMessage-Nachricht zurück.
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
- Prototyp: MQMessage MQQueueManager::mqSendTextMsgWithReply(String msgText, String queueName, String replyQueueName, String queueOpenOptions, String messagePutOptions)
- Beschreibung: Sendet eine Nachricht, die in der Zeichenfolge msgText enthalten ist, über queueName. Die Antwortwarteschlange ist angegeben. Gibt das MQMessage-Objekt zurück.
mqGetTextFromMsg
- Prototyp: String mqGetTextFromMsg(MQMessage mqMessage)
- Beschreibung: Gibt eine Zeichenfolge zurück, die den gesamten Inhalt einer MQMessage enthält, einschließlich der Header.
mqGetReceivedMsg
- Prototyp: MQMessage MQQueueManager::mqGetReceivedMsg(String queueName, String queueOpenOptions, String messageGetOptions)
- Beschreibung: Empfängt eine Nachricht von queueName. Gibt die Nachricht als MQMessage, oder Null zurück.
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
- Prototyp: MQMessage MQQueueManager::mqSendReply(MQMessage receivedMsg, String msgText, String passedInQueueOpenOptions, String passedInMessagePutOptions)
- Beschreibung: Sendet eine Antwort an die betreffende Nachricht, ohne Auskunft über Erfolg oder Fehlschlagen zu geben.
mqSendReplyWithStatus
- Prototyp: MQMessage MQQueueManager::mqSendReplyWithStatus(MQMessage receivedMsg, String msgText, String status, String passedInQueueOpenOptions, String passedInMessagePutOptions)
- Beschreibung: Sendet eine Antwort an die betreffende Nachricht, und richtet das Feld für die Rückmeldung so ein, dass der betreffende Status angezeigt wird. Der Status muss einer der folgenden sein (in Groß- oder Kleinschreibung): SUCCESS, FAIL, VALCHANGE, VALDUPES, MULTIPLE_HITS, FAIL_RETRIEVE_BY_CONTENT, BO_DOES_NOT_EXIST, UNABLE_TO_LOGIN, APP_RESPONSE_TIMEOUT, NONE.
Hinweis: Nur ein einziger Statuswert kann verwendet werden.
mqGetXMLMessageContent
- Prototyp: String mqGetXMLMessageContent(String orgXmlMsg)
- Beschreibung: Löscht fehlerhafte Daten am Anfang der Eingabezeichenfolge, um ein XML-Dokument abzurufen. Genauer gesagt, verhält es sich folgendermaßen: Wenn die Eingabezeichenfolge Format A + B hat, und B ein gültiges XML-Dokument ist, und A irgendeine (möglicherweise leere) Zeichenfolge ist, gibt die Operation B zurück; andernfalls wird Null zurückgegeben.
Hinweis: Verwenden Sie diese Methode, um eingehende Nachrichten zu analysieren.
mqGetResponseToMsg
- Prototyp: MQMessage MQQueueManager::mqGetResponseToMsg(MQMessage outgoingMessage, String queueOptions, String messageOptions)
- Beschreibung: Empfängt die Antwort auf die betreffende Nachricht von der betreffenden Warteschlange.
mqGetMessageDiagnostics
- Prototyp: String mqGetMessageDiagnostics(MQMessage message)
- Beschreibung: Gibt eine Zeichenfolge zurück, die Diagnoseinformationen über die betreffende Nachricht enthält.
mqGetMessageId
- Prototyp: String MQMessage::mqGetMessageId()
- Beschreibung: Gibt die ID der betreffenden Nachricht als Zeichenfolge mit einer Hexadezimalzahl zurück.
mqGetReceivedMsgByMessageID
- Prototyp: MQMessage MQQueueManager::mqGetReceivedMsgByMessageID(String queueName, String messageId, String passedInQueueOpenOptions, String passedInMessageGetOptions)
- Beschreibung: Sucht die Nachricht in der betreffenden Warteschlange mit der betreffenden Nachrichten-ID. Die ID wird in einer Zeichenfolge weitergeben, die eine Hexadezimalzahl enthält. Gibt Null zurück, wenn diese Nachricht nicht in der betreffenden Warteschlange vorhanden ist.
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
- Prototyp: Context jmsGetContext(String url, String jndiFactory)
- Beschreibung: Erstellt einen JMS-Kontext.
jmsGetConnectionFactory
- Prototyp: QueueConnectionFactory Context::jmsGetConnectionFactory(String jmsFactory)
- Beschreibung: Erstellt eine neue JMS-Verbindungsfactory mit dem angegebenen Kontext und gibt diese wieder zurück.
jmsGetMQConnectionFactory
- Prototyp: QueueConnectionFactory jmsGetMQConnectionFactory(String mqQueueManager, String mqHostname, String mqChannel, Integer mqPort)
- Beschreibung: Erstellt eine JMS-Verbindungsfactory für die Kommunikation mit MQ-Warteschlangen, und gibt die Factory wieder zurück. Beachten Sie, dass Sie keinen Kontext benötigen, um eine MQ-Verbindungsfactory zu erhalten, dass jedoch ein Kontext für die Verbindung zu anderen JMS-Warteschlangen notwendig ist.
jmsGetQueueByName
- Prototyp: javax.jms.Queue jmsGetQueueByName(Context ctx, String name)
- Beschreibung: Gibt ein Objekt javax.jms.Queue aus dem betreffenden JNDI-Namen und Kontext zurück.
jmsGetQueueConnection
- Prototyp: QueueConnection QueueConnectionFactory::jmsGetQueueConnection()
- Beschreibung: Gibt eine JMS-Zuordnung von Warteschlangen der betreffenden Verbindungsfactory zurück.
jmsGetQueueSession
- Prototyp: QueueSession QueueConnection::jmsGetQueueSession()
- Beschreibung: Gibt eine JMS-Zuordnung von Warteschlangen der betreffenden Verbindungsfactory zurück.
jmsDisconnect
- Prototyp: void QueueSession::jmsDisconnect(QueueConnection qcon)
- Beschreibung: Trennt die Verbindung mit dem betreffenden Warteschlangenmanager.
jmsCreateTextMsg
- Prototyp: Message QueueSession::jmsCreateTextMsg(Zeichenfolge msgText)
- Beschreibung: Erstellt eine neue JMS TextMessage mit den QueueSession Informationen des enthaltenen Textes.
jmsSendMsg
- Prototyp: Message QueueSession::jmsSendMsg(Message msg, String queueName[, HashMap properties, Message messageToReplyTo])
- Beschreibung: Sendet eine Nachricht MSG über die Warteschlange queueName und gibt MSG oder Null zurück. Wenn MESSAGETOREPLYTO angegeben ist, wird die Antwort an die Warteschlange und Nachrichten-ID daraus entnommen. PROPERTIES ist eine Zuordnung von Zeichenfolgeschlüsseln zu Zeichenfolgewerten. Es gibt drei spezielle Schlüssel "WPC_REPLY_TO_QUEUE", "WPC_COPY_CORRELATION_ID_BYTES", und "WPC_COPY_CORRELATION_ID". Wenn WPC_REPLY_TO_QUEUE angegeben ist, überschreibt er QUEUENAME oder replyto queue in MESSAGETOREPLYTO. replyto queue in MESSAGETOREPLYTO überschreibt QUEUENAME. "WPC_COPY_CORRELATION_ID" und "WPC_COPY_CORRELATION_ID_BYTES" kopieren über die Korrelations-ID von MESSAGETOREPLYTO an MSG. Beide können angegeben werden. Ihre Werte müssen Boolesche Werte sein (im Gegensatz zu Zeichenfolgen - wie oben beschrieben).
jmsReceiveMsgFromQueue
- Prototyp: JMSMessage QueueSession::jmsReceiveMsgFromQueue(javax.jms.Queue queue, Integer timeout[, String messageSelector, JMSMessage messageToReceiveReplyFor])
- Beschreibung: Empfängt eine JMS-Nachricht. Zeitlimitüberschreitung nach TIMEOUT Millisekunden. Wenn INBOUNDQUEUE nicht Null ist, wird dort gesucht. Wenn INBOUNDQUEUE Null ist, und MESSAGETORECEIVEREPLYFOR nicht Null ist, wird in der Warteschlange gesucht, die im Feld Reply-To von MESSAGETORECEIVEREPLYFOR definiert wurde. Wenn INBOUNDQUEUE Null ist und MESSAGETORECEIVEREPLYFOR Null ist, wird eine AustinException ausgelöst. Sie wissen nun, welche Warteschlange verwendet wird. Wenn MESSAGESELECTOR und MESSAGETORECEIVEREPLYFOR beide Null sind, wird die erste Nachricht aus dieser Warteschlange ausgewählt. Anderenfalls wird die erste Nachricht aus der Warteschlange ausgewählt (falls vorhanden) und dadurch alle Bedingungen erfüllt, die von MESSAGESELECTOR und MESSAGETORECEIVEREPLYFOR festgelegt wurden. Wenn MESSAGETORECEIVEREPLYFOR nicht Null ist, werden alle Nachrichten abgelehnt, die keine Korrelations-ID gleich der Nachrichten-ID von MESSAGETORECEIVEREPLYFOR enthalten. Wenn MESSAGESELECTOR nicht Null ist, werden alle Nachrichten zurückgewiesen, die nicht die Bedingungen erfüllen, wie sie im messageSelector definiert wurden. Wenn keine geeignete Nachricht gefunden wurde, wird Null zurückgegeben.
jmsGetTextFromMsg
- Prototyp: String Message::jmsGetTextFromMsg()
- Beschreibung: Gibt eine Zeichenfolge zurück, die den gesamten Inhalt einer JMS-Nachricht enthält, einschließlich der Header.
jmsGetMessageID
- Prototyp: String Message::getJMSMessageID()
- Beschreibung: Gibt eine Zeichenfolge zurück, die die JMS-Nachrichten-ID enthält.
jmsGetMessageCorrelationID
- Prototyp: String Message::getJMSMessageCorrelationID()
- Beschreibung: Gibt eine Zeichenfolge zurück, die die Korrelations-ID für die JMS-Nachricht enthält.
jmsGetMessageProperties
- Prototyp: HashMap Message::getJMSMessageProperties()
- Beschreibung: Gibt eine Hash-Zuordnung von Zeichenfolgemerkmalnamen an Zeichenfolgewerte für diese Prioritäten zurück.
jmsSendMsgToQueue
- Prototyp: JMSMessage QueueSession::jmsSendMsgToQueue(JMSMessage msg, javax.jms.Queue outboundQueue [, HashMap properties, JMSMessage messageToReplyTo,])
- Beschreibung: Sendet die Nachricht MSG und gibt MSG oder Null zurück. Die Nachricht wird an die Warteschlange gesendet, die durch OUTBOUNDQUEUE definiert wird, es sei denn, OUTBOUNDQUEUE ist Null. Wenn OUTBOUNDQUEUE Null ist, wird MSG an reply-to queue von MESSAGETOREPLYTO gesendet, falls MESSAGETOREPLYTO angegeben ist. Wenn OUTBOUNDQUEUE Null ist und MESSAGETOREPLYTO nicht angegeben wurde, wird eine AustinException ausgelöst. Wenn MESSAGETOREPLYTO angegeben ist, wird die Nachrichten-ID daraus entnommen. PROPERTIES ist eine Zuordnung von Zeichenfolgeschlüsseln zu Zeichenfolgewerten. Es gibt einen speziellen (nicht-JMS-) Schlüssel: WPC_INCOMING_REPLY_QUEUE. WPC_INCOMING_REPLY_QUEUE gibt ein Objekt javax.jms.Queue an, an das eine externe Anwendung Antworten auf diese Nachricht senden sollte.
jmsSetMessageText
- Prototyp: void Message::setJMSMessageText(String msgText)
- Beschreibung: Legt den angegebenen Text für die JMS TextMessage fest. Es wird nur der Typ JMS TextMessage unterstützt.
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>