Mit dem JMSOutput-Knoten werden Nachrichten an JMS-Zieladressen gesendet.
Dieses Thema ist in folgende Abschnitte eingeteilt:
Der JMSOutput-Knoten agiert als JMS-Nachrichtenproduzent und kann alle sechs Nachrichtentypen veröffentlichen, die in der Java™ Message Service Specification Version 1.1 definiert sind. Nachrichten werden mithilfe von Methodenaufrufen veröffentlicht, die in der JMS-Spezifikation beschrieben sind.
Der JMSOutput-Knoten befindet sich im Ablagefach JMS der Palette und wird im WebSphere Message Broker Toolkit durch folgendes Symbol dargestellt:
Informationen zu Beispielen können nur bei Verwendung des in das WebSphere Message Broker Toolkit integrierten bzw. online verfügbaren Information Center angezeigt werden. Muster können nur ausgeführt werden, wenn das im WebSphere Message Broker Toolkit integrierte Information Center verwendet wird.
Nachrichtenflüsse, die Nachrichten handhaben, die von Verbindungen mit JMS-Providern empfangen werden, müssen immer mit einem JMSInput-Knoten beginnen. Wenn Sie den JMSOutput-Knoten in einen Nachrichtenfluss aufnehmen, müssen Sie keinen JMSInput-Knoten einschließen. Wenn Sie jedoch keinen JMSInput-Knoten aufnehmen, müssen Sie den MQJMSTransform-Knoten einschließen, um die Nachricht in das Format umzuwandeln, das vom JMSOutput-Knoten erwartet wird.
Wenn Sie JMS-Nachrichten weitergeben und einen Nachrichtenfluss so erstellen, dass er einen untergeordneten Nachrichtenfluss verwendet, setzen Sie eine Instanz des JMSOutput-Knotens als letzten Knoten ein, um ein Ausgangsterminal für den untergeordneten Nachrichtenfluss zu erstellen.
SET OutputRoot.JMSTransport.Transport_Folders.Message_MetaData.PayloadType=Nutzlastwert
Weitere Informationen zur JMS-Nachrichtenbaumstruktur und zu Nutzlastwerten finden Sie im Abschnitt Darstellung von Nachrichten im JMS-Transport.
CREATE PROCEDURE CreateJMSDestinationList() BEGIN
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[1] = 'jndi://TestDestQueue1';
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[2] = 'jndi://TestDestQueue2';
SET OutputLocalEnvironment.Destination.JMSDestinationList.DestinationData[3] = 'jndi://TestDestQueue3';
END;
Konfigurierbare Services sind für eine Reihe von JMS-Providern definiert. Sie können einen der vordefinierten Services auswählen oder einen neuen Service für einen neuen Provider oder einen vorhandenen Provider erstellen. Die vordefinierten Services sind unter Eigenschaften von konfigurierbaren Services aufgeführt.
Mit dem Befehl mqsireportproperties können Sie die Providereigenschaften anzeigen. Mit dem Befehl mqsichangeproperties können Sie die Eigenschaften festlegen oder modifizieren.
Der Sender einer Nachricht erwartet möglicherweise eine Antwort vom Empfänger der Nachricht. In diesem Fall kann die JMSOutput-Nachricht die ausgehende Nachricht als Antwort behandeln und gemäß dem Wert, der aus der Eigenschaft JMSReplyTo aus der Anforderungsnachricht abgerufen wird, weiterleiten. Sie können den Wert der Eigenschaft JMSReplyTo in MbMessage z. B. mithilfe eines Compute-Knotens oder eines JavaCompute-Knotens ändern. Dies ermöglicht das dynamische Routing von Nachrichten vom JMSOutput-Knoten aus. Der Knoten sendet die Nachricht an den JMS-Bestimmungsnamen, der im Feld 'JMSReplyTo' der MbMessage-Baumstruktur festgelegt wurde.
queue://QM_mn2/meineJMSWarteschlange4
In diesem Fall handelt es sich bei dem
Wert um die JMS-Provider-spezifische Darstellung der JMS-Zieladresse beim JMS-Provider für die WebSphere MQ-Serie.jndi://jmsQ4
Dabei steht jmsQ4 für den Namen des
JNDI-verwalteten Objekts.Bei Verwendung dieser Methode können Leistungseinbußen auftreten, weil der Name des verwalteten Objekts erst in JNDI nachgeschlagen werden muss.
Wenn der JMSOutput-Knoten die Eigenschaft 'JMSReplyTo' in der ausgehenden Nachricht dynamisch festlegen soll, lassen Sie das Feld Zieladresse für Antworten auf der Registerkarte Grundeinstellungen leer, und legen Sie den Wert für 'JMSReplyTo' in MbMessage mithilfe eines Compute-Knotens oder eines JavaCompute-Knotens fest.
Der Knoten löst den Namen des JNDI-verwalteten Objekts auf, der entweder im Veröffentlichungsthema oder in der Zielwarteschlange bereitgestellt wurde, und sendet die Nachricht an diese JMS-Zieladresse.
Die Funktion 'cciOutputMessageCallback' kann als Callback registriert und immer aufgerufen werden, wenn von einem JMSOutput-Knoten eine Nachricht gesendet wird. Weitere Informationen hierzu finden Sie unter cciOutputMessageCallback.
Wenn der Benutzerexitstatus aktiv ist, wird die Funktion 'cciOutputMessageCallback' für jede Ausgabenachricht aufgerufen, die erfolgreich von einem JMSOutput-Knoten, auf dem der Callback registriert ist, gesendet wird.
Wenn der Knoten in der Baumstruktur 'LocalEnvironment' die Information 'WrittenDestination' bereitstellt, wird der Callback nach der Erstellung dieser Information aufgerufen. Weitere Informationen hierzu finden Sie unter LocalEnvironment-Variablen bei JMSOutput- und JMSReply-Knoten verwenden.
Verbinden Sie einen Compute-Knoten mit dem Ausgangsterminal (Out) eines JMSOutput-Knotens, und überprüfen Sie die WrittenDestination-Liste. Der Abschnitt Die Baumstruktur einer logischen Nachricht in der Traceausgabe anzeigen enthält weitere Informationen hierzu.
WrittenDestination = (
JMS = (
DestinationData = (
destinationName = 'queue://jmsQueue1'
initialContext = 'com.sun.jndi.fscontext.RefFSContextFactory'
JMSMessageID = ID:414d512054657374514d2020202020206ab98b4520017a02'
JMSCorrelationID = 'ABCDEFGHIJKLMNOPQRSTUVW'
)
)
)
Wenn Sie einen JMSOutput-Knoten in einen Nachrichtenfluss einschließen, definiert der Wert, den Sie für den Transaktionsmodus festgelegt haben, ob die Nachrichten unter Synchronisationspunktsteuerung gesendet werden.
Installationsverzeichnis/bin/ JMSSwitch.dll
XAOpenString=Ausgangskontext, JNDI-Position, Optionale Parameter
ThreadOfControl=THREAD
JMSSwitch
XAOpenString=Initial Context,location JNDI,Optional_parms
ThreadOfControl=THREAD
XAResourceManager:
Name=Name_des_JMS-Providers
SwitchFile=/Installationsverzeichnis/bin/ JMSSwitch.so
XAOpenString=Ausgangskontext, JNDI-Position, Optionale Parameter
ThreadOfControl=THREAD
Dabei ist Die optionalen Parameter werden durch Kommas getrennt und sind positionsgebunden. Aus diesem Grund müssen fehlende Parameter durch ein Komma dargestellt werden.
Installationsverzeichnis/classes/xarecovery.jar
Installationsverzeichnis/bin
Weitere Informationen finden Sie im System Administration Guide (Handbuch zur Systemverwaltung) unter WebSphere MQ Version 7 Information Center online.
Die Synchronisationspunktsteuerung für den JMS-Provider wird mit der RRS-Synchronisationspunkt-Koordination des Broker-WS-Managers verwaltet. Die Datei .ini muss nicht geändert werden.
Wenn der JMSOutput-Knoten BEA WebLogic als JMS-Provider verwendet und die Knoten an einem koordinierten Nachrichtenfluss teilnehmen müssen, lesen Sie den Abschnitt Client des JMS-Providers für JMS-Knoten verfügbar machen.
Verbinden Sie das Eingangsterminal des JMSOutput-Knotens mit dem Knoten, von dem ausgehende Nachrichten weitergeleitet werden.
Verbinden Sie das Ausgangsterminal des JMSOutput-Knotens mit einem anderen Knoten im Nachrichtenfluss, um die Nachricht weiterzuverarbeiten, Fehler zu verarbeiten oder die Nachricht an eine weitere Zieladresse zu senden.
Nachdem Sie eine Instanz des JMSOutput-Knotens in einen Nachrichtenfluss eingereiht haben, können Sie den Knoten konfigurieren; siehe Nachrichtenflussknoten konfigurieren. Die Eigenschaften des Knotens werden in der Ansicht 'Eigenschaften' angezeigt. Alle verbindlichen Eigenschaften, für die kein Standardwert definiert ist, sind mit einem Stern markiert.
Terminal | Beschreibung |
---|---|
Eingabeterminal (In) | Das Eingabeterminal, das eine Nachricht zur Verarbeitung durch einen Knoten annimmt |
Fehlerterminal (Failure) | Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn ein Fehler auftritt.Selbst wenn die Eigenschaft 'Auswerten' festgelegt wird, werden Nachrichten, die an dieses Terminal weitergegeben werden, nicht ausgewertet. |
Ausgang | Das Ausgabeterminal, an das die Nachricht weitergeleitet wird, wenn sie erfolgreich in das Ausgabeziel (Thema oder Warteschlange) gestellt wurde. |
In den folgenden Tabellen werden die Knoteneigenschaften beschrieben. Die Spalte O zeigt an, ob die Eigenschaft 'obligatorisch' ist (markiert mit einem Sternchen, wenn ein Wert eingegeben werden muss, weil kein Standardwert definiert ist). Die Spalte K zeigt an, ob die Eigenschaft 'konfigurierbar' ist (Wert kann geändert werden, wenn der Nachrichtenfluss zur BAR-Datei hinzugefügt wird, um ihn einzusetzen).
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Knotenname | Nein | Nein | Knotentyp, z. B. JMSOutput | Der Name des Knotens. |
Kurzbeschreibung | Nein | Nein | Kurze Beschreibung des Knotens. | |
Ausführliche Beschreibung | Nein | Nein | Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt. |
Eigenschaft | M | C | Standardwert | Beschreibung | Eigenschaft des Befehls mqsiapplybaroverride |
---|---|---|---|---|---|
Zielwarteschlange | Nein | Ja | Der Name der Warteschlange, in der der Knoten ausgehende Nachrichten veröffentlicht. Wenn der JMSOutput-Knoten zum Senden von Punkt-zu-Punkt-Nachrichten verwendet werden soll, geben Sie den Namen der Zielwarteschlange als JMS-Warteschlangenname, der in der JMS-Bindungsdatei aufgelistet ist, ein. | destinationQueueName | |
Veröffentlichungsthema | Nein | Ja | Der Name des Themas, für das der Knoten Nachrichten veröffentlicht.
|
Thema | |
Zieladresse für Antworten | Nein | Ja | Der Name der JMS-Zieladresse, an die die empfangende Anwendung eine Antwortnachricht senden muss. Der JMS-Bestimmungsname muss der Domäne des vom empfangenden Client verwendeten JMS-Providers bekannt sein, damit eine Antwortnachricht an diese JMS-Zieladresse zurückgegeben werden kann. Sie können eine JMS-Zieladresse eingeben, bei der es sich um eine Subskriptionswarteschlange oder um ein Zielthema handeln kann. Standardmäßig ist kein Wert angegeben. In diesem Fall kann die JMS-Ausgabenachricht als Datagramm betrachtet werden. Wenn dieses Feld leer gelassen wird, erwartet der JMSOutput-Knoten keine Antwort vom empfangenden JMS-Client. |
replyToDestination | |
An Zieladressenliste in lokaler Umgebung senden | Nein | Ja | Nicht ausgewählt | Wenn Sie in der lokalen Umgebung eine Liste von JMS-Zieladressen erstellt haben, aktivieren Sie dieses Kontrollkästchen, um die Zieladressenliste zu verwenden. Wenn Sie dieses Kontrollkästchen nicht aktivieren, verwendet der Knoten die konfigurierte JMS-Zieladresse. Wenn Sie dieses Kontrollkästchen aktivieren, aber keine Liste mit JMS-Zieladressen in der lokalen Umgebung erstellt haben, verwendet der Knoten die konfigurierte JMS-Zieladresse. | useDistList |
Eigenschaft | M | C | Standardwert | Beschreibung | Eigenschaft des Befehls mqsiapplybaroverride |
---|---|---|---|---|---|
Name des JMS-Providers | Ja | Nein | WebSphere MQ | Wählen Sie in der Liste den Namen eines JMS-Anbieters aus, oder geben Sie einen Namen ein. Wenn Sie in der Liste einen Namen auswählen, wird die Eigenschaft Ausgangskontextfactory automatisch mit der entsprechenden Java-Klasse aktualisiert. Wenn Sie den JMS-Provider selbst eingeben, müssen Sie auch einen Wert für Ausgangskontextfactory eingeben. Der Name muss dem Namen eines konfigurierbaren Service entsprechen, der für den Broker, für den Sie den Nachrichtenfluss implementieren, definiert ist. Alternativ können Sie den konfigurierbaren Service JMSProviders angeben. | |
Ausgangskontextfactory | No | Ja | com.sun.jndi.fscontext. RefFSContextFactory | Diese Eigenschaft gibt den Ausgangspunkt für einen JNDI-Namespace an. Eine JMS-Anwendung verwendet den Ausgangskontext, um die Verbindungsfactory sowie Warteschlangen
oder Themenobjekte für den JMS-Provider abzurufen und zu suchen. Wenn Sie in der Liste unter Name des JMS-Providers den Namen eines JMS-Providers auswählen, wird die Eigenschaft Ausgangskontextfactory automatisch mit der entsprechenden Java-Klasse aktualisiert. Wenn Sie den JMS-Provider selbst eingeben, müssen Sie auch einen Wert für Ausgangskontextfactory eingeben. Der Standardwert lautet com.sun.jndi.fscontext.RefFSContextFactory; damit wird die dateibasierte Ausgangskontextfactory für den JMS-Provider von WebSphere MQ definiert. Wenn der Knoten für die Verwendung Ihres eigenen JMS-Providers eingestellt ist und für die entsprechende Eigenschaft Konfigurierbare Services der Definition mqsichangeproperties das Attribut Ausgangskontextfactory festgelegt wurde, überschreibt dies die Einstellung auf dem Knoten. |
initialContextFactory |
Position der JNDI-Bindungen | No | Ja | Der Systempfad oder die LDAP-Position für die Bindungsdatei. Die Bindungsdatei enthält Definitionen für die verwalteten JNDI-Objekte, die vom JMSOutput-Knoten verwendet werden. Wenn Sie einen Wert für 'Position der JNDI-Bindungen'
eingeben, müssen Sie dabei folgende Anweisungen einhalten:
Informationen zum Erstellen der JMS-Bindungsdatei für verwaltete JNDI-Objekte finden Sie in der mit dem JMS-Provider zur Verfügung gestellten Dokumentation. Wenn der Knoten für die Verwendung Ihres eigenen JMS-Providers eingestellt ist und für die entsprechende Eigenschaft Konfigurierbare Services der Definition mqsichangeproperties das Attribut jndiBindingsLocation festgelegt wurde, überschreibt dies die Einstellung auf dem Knoten. |
locationJndiBindings | |
Name der Verbindungsfactory | No | Ja | Der Name der Verbindungsfactory, der vom JMSOutput-Knoten für die Erstellung einer Verbindung zum JMS-Provider verwendet wird. Dieser Name muss in der Bindungsdatei bereits vorhanden sein. Die Verbindungsfactory kann eine JMS-Warteschlangenverbindungsfactory oder eine JMS-Themaverbindungsfactory sein, muss jedoch mit dem Nachrichtenmodell übereinstimmen, das vom Knoten verwendet wird. Alternativ dazu können Sie die generische JMS-Verbindungsfactory angeben, die für JMS-Warteschlangenziele oder für JMS-Themaziele verwendet werden kann. | connectionFactoryName |
Eigenschaft | M | C | Standardwert | Beschreibung |
---|---|---|---|---|
Neue Korrelations-ID | Nein | Ja | Wählen Sie Neue Korrelations-ID aus, wenn der JMSOutput-Knoten benötigt wird, um eine neue Korrelations-ID für die Nachricht zu generieren. Wenn Sie das Kontrollkästchen nicht aktivieren, wird die Korrelations-ID der Ausgabenachricht aus dem Feld 'JMSCorrelationID' im Abschnitt 'JMSTransport_Header_Values' der Nachrichtenbaumstruktur übernommen. | |
Transaktionsmodus | Ja | Nein | Nein | Durch diese Eigenschaft wird gesteuert, ob die Nachricht unter
einer JMS-Transaktion empfangen wird. Gültige Werte sind Ja und Nein.
|
Zustellmodus | Nein | Ja | Nicht permanent | Durch diese Eigenschaft wird der Permanenzmodus gesteuert, den ein
JMS-Provider für eine Nachricht verwendet. Folgendes sind gültige Werte:
|
Verfall der Nachricht (ms) | Nein | Ja | 0 | Diese Eigenschaft gibt (in Millisekunden) die Zeitdauer an, für die der JMS-Provider die
JMS-Ausgabenachricht aufbewahrt.
Mit dem Standardwert 0 wird angegeben, dass die
Nachricht nicht ablaufen darf. Wählen Sie Aus Header
übernehmen aus, oder geben Sie eine Ganzzahl ein, die einer Angabe in Millisekunden
entspricht. Wenn Sie Aus Header übernehmen auswählen,
übernimmt die Eigenschaft den Wert des Feldes 'JMSExpiry' in der JMS-Nachricht, das sich an der
folgenden Position befindet:
|
Nachrichtenpriorität | Nein | Ja | 4 | Diese Eigenschaft weist der Nachricht eine relative Bedeutung zu und kann von
einer empfangenden JMS-Clientanwendung oder einem
JMSOutput-Knoten zur Nachrichtenauswahl verwendet
werden. Wählen Sie einen Wert zwischen 0 (niedrigste Priorität) und 9 (höchste Priorität), oder wählen Sie Aus Header übernehmen aus. Der Standardwert lautet
4, was eine mittlere Priorität bedeutet.
Prioritäten im Bereich 0 bis
4 beziehen sich auf eine normale Zustellung.
Die
Prioritäten im Bereich 5 bis
9 sind Abstufungen einer Eilzustellung zugeordnet. Wenn Sie Aus Header übernehmen auswählen, übernimmt
die Eigenschaft den Wert des Feldes 'JMSPriority' in der JMS-Nachricht, das sich an der folgenden
Position befindet:
|
Nachrichtenart | Nein | Ja | Ermitteln Sie den Typ der Ausgabenachricht aus der JMS-Nachrichtenbaumstruktur | Wählen Sie in der Liste einen Wert aus, um den Typ der JMS-Nachricht zu konfigurieren, der vom
JMSOutput-Knoten erstellt wird. Wenn Sie keinen Wert für diese Eigenschaft festlegen, wählt der Knoten den Ausgabetyp aus dem Metadatenfeld 'PayLoadType' in der JMS-Nachrichtenbaumstruktur aus, wie durch den Standardwert Ausgabenachrichtentyp aus der JMS-Nachrichtenbaumstruktur bestimmen angezeigt wird. Gültige Werte sind:
|
Eigenschaft | O | K | Standardwert | Beschreibung | Eigenschaft des Befehls mqsiapplybaroverride |
---|---|---|---|---|---|
Auswerten | Nein | Ja | Übernehmen | Durch diese Eigenschaft wird gesteuert, ob eine Auswertung stattfindet. Gültige Werte sind Keine, Inhalt, Inhalt und Wert und Übernehmen. | validateMaster |
Aktion bei Fehler | Nein | Nein | Ausnahme | Durch diese Eigenschaft wird gesteuert, was beim Fehlschlagen der Auswertung geschieht. Diese Eigenschaft kann nur angegeben werden, wenn Auswerten auf Inhalt oder Inhalt und Wert gesetzt ist. Gültige Werte sind Benutzertrace, Lokales Fehlerprotokoll, Ausnahmebedingung und Ausnahmeliste. |
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Ereignisse | Nein | Nein | Ohne | Auf dieser Registerkarte werden Ereignisse angezeigt, die Sie für den Knoten
definiert haben. Standardmäßig sind für keinen Knoten in einem Nachrichtenfluss
Überwachungsereignisse definiert. Über Hinzufügen,
Bearbeiten und Löschen können Sie
Überwachungsereignisse für den Knoten erstellen, ändern oder löschen (Details siehe
Überwachungsereignisquellen mithilfe von Überwachungseigenschaften konfigurieren). Sie können hier angezeigte Ereignisse aktivieren oder inaktivieren, indem Sie das Kontrollkästchen Aktiviert aktivieren oder inaktivieren. |