JMSSendeknoten

Dieses Thema enthält folgende Abschnitte:

Zweck

Mit dem JMSSendeknoten werden Nachrichten an JMS-Zieladressen gesendet. Der JMSSendeknoten 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 mit Hilfe von Methodenaufrufen veröffentlicht, die in der JMS-Spezifikation beschrieben sind.

Der JMSSendeknoten wird in der Workbench durch folgendes Symbol dargestellt:

Symbol für den JMSSendeknoten

Den JMSSendeknoten in einem Nachrichtenfluss verwenden

Das Beispiel Beispielprogramm 'JMS Nodes' enthält einen Nachrichtenfluss, in dem der JMSSendeknoten verwendet wird. Dieses Beispiels demonstriert die Verwendung des JMSSendeknotens.

Nachrichtenflüsse, die Nachrichten handhaben, die von Verbindungen mit JMS-Providern empfangen werden, müssen immer mit einem JMSEmpfangsknoten beginnen. Wenn Sie den JMSSendeknoten in einen Nachrichtenfluss aufnehmen, müssen Sie keinen JMSEmpfangsknoten einschließen. Wenn Sie jedoch keinen JMSEmpfangsknoten einschließen, müssen Sie den MQJMSUmsetzungsknoten einschließen, um die Nachricht in das Format umzuwandeln, das vom JMSSendeknoten erwartet wird.

Wenn Sie JMS-Nachrichten weitergeben und einen Nachrichtenfluss entsprechend erstellen, dass er einen untergeordneten Fluss verwendet, müssen Sie eine Instanz des JMSSendeknotens als letzten Knoten nehmen, um ein Ausgangsterminal für den untergeordneten Fluss zu erstellen.

Client des JMS-Providers für JMS-Knoten verfügbar machen

Kopieren Sie auf verteilten Plattformen die JAR-Dateien in Java und alle nativen Bibliotheken für den Client des JMS-Providers in das Brokerverzeichnis 'shared-classes'. Beispiel unter Windows: C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\IBM\MQSI\shared-classes. Dadurch wird sichergestellt, dass der Pfad der Java-Klasse für die JMS-Knoten richtig festgelegt ist.

Unter z/OS ist kein Verzeichnis 'shared-classes' vorhanden. Stattdessen müssen Sie jede Java-JAR-Datei des JMS-Providers im Klassenpfad des BIPPROF-Mitglieds der partitionierten Datei des Brokers angeben. Aktualisieren Sie anschließend LIBPATH mit beliebigen nativen Bibliotheken, und übergeben Sie den BIPGEN JCL-Job zur Aktualisierung des Brokers ENVFILE.

JMSSendeknoten konfigurieren

Wenn Sie eine Instanz des JMSSendeknotens in einen Nachrichtenfluss eingereiht haben, können Sie ihn konfigurieren. Klicken Sie in der Editoransicht mit der rechten Maustaste auf den Knoten, und klicken Sie auf Eigenschaften. Daraufhin werden die grundlegenden Eigenschaften des Knotens im Eigenschaftendialogfeld angezeigt.

Alle verbindlichen Eigenschaften, für die kein Standardwert definiert ist, sind im Eigenschaftendialog mit einem Stern markiert.

Konfigurieren Sie den JMSSendeknoten wie folgt:

  1. Wählen Sie Grundeinstellung im Navigator des Eigenschaftendialogs, und machen Sie alle Angaben für folgende Eigenschaften:
    • Geben Sie einen Wert für die Ausgangskontext-Factory ein. Eine JMS-Anwendung verwendet den Ausgangskontext, um die verwalteten JNDI-Attribute für den JMS-Provider abzurufen und zu suchen. Der Standardwert ist

      com.sun.jndi.fscontext.RefFSContextFactory; damit wird die dateibasierte Ausgangskontextfactory für den JMS-Provider von WebSphere MQ definiert.

      Die Dokumentation des JMS-Providers enthält Informationen zum Namen der Ausgangskontext-Factory.

    • Geben Sie einen Wert für die Position der JNDI-Bindungen ein. Dieser Wert gibt entweder den Dateisystempfad oder die LDAP-Adresse für die Bindungsdatei an. Die Bindungsdatei enthält Definitionen für die verwalteten JNDI-Objekte, die vom JMSEmpfangsknoten verwendet werden.

      Wenn Sie einen Wert für die Position der JNDI-Bindungen eingeben, müssen Sie sicherstellen, dass er mit den folgenden Anweisungen kompatibel ist:

      • Erstellen Sie die Bindungsdatei vor der Implementierung eines Nachrichtenflusses, der einen JMSEmpfangsknoten enthält.
      • Geben Sie in diesem Feld nicht den Dateinamen der Bindungsdatei ein.
      • Wenn Sie eine LDAP-Adresse angegeben haben, für die eine Authentifizierung erforderlich ist, müssen Sie sowohl den LDAP-Principal (Benutzer-ID) als auch die LDAP-Berechtigungsnachweise (Kennwort) separat konfigurieren. Diese Werte werden auf Brokerebene konfiguriert. Die Befehle mqsicreatebroker und mqsichangebroker enthalten Informationen zur Konfiguration dieser Werte.
      • Der Zeichenfolgewert sollte eines der folgenden führenden Schlüsselwörter als Vorzeichen enthalten: file:/ , iiop:/ oder ldap:/.

      Weitere Informationen zur Erstellung der Bindungsdatei für verwaltete JNDI-Objekte finden Sie in der Dokumentation, die mit dem JMS-Provider bereitgestellt wird.

    • Geben Sie den Namen der Verbindungsfactory ein. Der Name der Verbindungsfactory wird vom JMSEmpfangsknoten für die Erstellung einer Verbindung zum JMS-Provider verwendet. Dieser Name muss in der Bindungsdatei bereits vorhanden sein.
  2. Wenn der JMSSendeknoten für die Subskription eines Themas verwendet werden soll, wählen Sie im Navigator des Eigenschaftendialogs Pub/Sub aus.
    • Geben Sie den Namen des Publisher-Themas ein.
      • Wenn diese Eigenschaft konfiguriert wird, agiert der Knoten nur in der Publish/Subscribe-Nachrichtendomäne.
      • Diese Eigenschaft und die Eigenschaft Zielwarteschlange im Abschnitt mit den Punkt zu Punkt-Eigenschaften schließen sich gegenseitig aus.
      • Der Name des Publisher-Themas muss den Standards des JMS-Providers entsprechen, der vom Knoten verwendet wird.
  3. Wenn der JMSSendeknoten für den Empfang von Punkt-zu-Punkt-Nachrichten verwendet werden soll, wählen Sie im Navigator des Eigenschaftendialogs Punkt-zu-Punkt aus.
    • Geben Sie für den Namen der JMS-Warteschlange den Namen der Zielwarteschlange ein, die in der Bindungsdatei aufgeführt wird.
  4. Wählen Sie Anforderung im Navigator des Eigenschaftendialogs, und machen Sie alle Angaben für folgende Eigenschaften:
    • Wählen Sie eine Option aus der Dropdown-Liste Zielmodus aus.
      • Der Standardwert lautet Bestimmungsname. Wenn dieser Wert ausgewählt ist, wird die Nachricht als Anforderung eines Datagramms behandelt, und sie richtet sich entweder an das Veröffentlichungsthema oder die Zielwarteschlange .
      • Wenn die Nachricht als Antwort bearbeitet werden soll, wählen Sie Bestimmungsname für Antwortnachrichten aus. Dem JMS-Provider wird der JMSReplyTo-Wert aus dem Abschnitt JMSTransport_Header_values der Nachrichtenbaumstruktur bereitgestellt.
    • Geben Sie für Zieladresse für Antwortnachrichten einen Wert ein. Sie können eine JMS-Zieladresse eingeben, bei der es sich um eine Subskriptionswarteschlange oder um ein Zielthema handeln kann. Die Zieladresse für Antwortnachrichten ist der Name der JMS-Zieladresse, an die die empfangende Anwendung als Antwortnachricht gesendet werden sollte. 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.

      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 JMSSendeknoten keine Antwort vom empfangenden JMS-Client.

  5. Wählen Sie im Navigator des Eigenschaftendialogs Erweitert aus.
    • Wenn eine Neue Korrelations-ID erforderlich ist, wählen Sie das Kontrollkästchen aus.
    • Wählen Sie aus der Dropdown-Liste Transaktionsmodus aus, um die transaktionalen Merkmale für die Handhabung dieser Nachricht zu definieren. Sie können eine der folgenden Optionen auswählen:
      • Wählen Sie Keine aus, wenn die abgehende Nachricht als nicht persistent behandelt werden soll. In diesem Fall wird die Nachricht mit Hilfe einer JMS-Sitzung ohne Transaktionsunterstützung gesendet, die mit Hilfe des Attributs Session.AUTO_ACKNOWLEDGE erstellt wird.
      • Wählen Sie lokal aus, wenn der Empfangsknoten, der die Nachricht erhalten hat, die Festschreibung oder die Rücksetzung der vom Knoten gesendeten JMS-Nachrichten zusammen mit anderen Ressourcen (z. B. DB2 oder WebSphere MQ), die die Arbeit im Nachrichtenfluss ausführen, koordinieren soll. In diesem Fall verwendet der Knoten eine JMS-Sitzung mit Transaktionsunterstützung.
      • Wählen Sie global aus, wenn der JMSSendeknoten an einer globalen Nachrichtenflusstransaktion teilnehmen soll, die vom externen Synchronisationspunkt-Koordinator des Brokers verwaltet wird. Beim Synchronisationspunkt-Koordinator handelt es sich auf verteilten Plattformen um den WS-Manager des Brokers und unter z/OS um RRS (Resource Recovery Services). In diesem Fall werden alle Nachrichten, die vom Knoten empfangen werden, mit Hilfe einer XA JMS-Sitzung global koordiniert.
    • Sie können die Permanenz der abgehenden JMS-Nachricht mit Hilfe der Eigenschaft Zustellmodus festlegen. Wählen Sie eine Option aus der Dropdown-Liste aus. Es steht Folgendes zur Auswahl:
      • Nicht permanent - zeigt dem JMS-Provider an, dass die Nachricht als nicht permanent behandelt werden soll.
      • Permanent - markiert Nachrichten für den JMS-Provider als permanent und zeigt, dass die Nachrichten beibehalten werden sollen, bis sie erfolgreich an eine empfangende JMS-Clientanwendung übermittelt werden.
    • Geben Sie für den Nachrichtenablauf einen Wert ein, um anzufordern, dass der JMS-Provider die JMS-Ausgabenachricht für eine bestimmte Zeit aufbewahrt.

      Geben Sie einen Wert in Millisekunden ein, um anzugeben, wie lange die Nachricht vom JMS-Provider aufbewahrt werden soll. Mit dem Standardwert 0 wird angegeben, dass die Nachricht nicht ablaufen soll.

    • Wenn Sie der Nachricht eine relative Bedeutung zuweisen möchten, wählen Sie aus der Dropdown-Liste Nachrichtenpriorität eine Option aus. Dieser Wert kann von einer empfangenden JMS-Clientanwendung oder einem JMSSendeknoten für die Nachrichtenauswahl verwendet werden.

      Geben Sie einen Wert ein, wobei die gültigen Werte für die Nachrichtenpriorität zwischen 0 (niedrigste Priorität) und 9 (höchste Priorität) liegen. Der Standardwert lautet 4, was eine mittlere Priorität bedeutet. Die Prioritäten im Bereich 0 bis 4 sind einer normalen Zustellung zugeordnet. Die Prioritäten im Bereich 5 bis 9 sind Abstufungen einer Eilzustellung zugeordnet.

  6. Wählen Sie im Eigenschaftendialognavigator Beschreibung aus, um eine Kurzbeschreibung, eine ausführliche Beschreibung oder beides einzugeben.
  7. Klicken Sie auf Übernehmen, um die Änderungen am JMSSendeknoten vorzunehmen, ohne das Dialogfeld mit den Eigenschaften zu schließen. Klicken Sie auf OK, um die Änderungen zu übernehmen und das Dialogfeld mit den Eigenschaften zu schließen.

    Klicken Sie auf Abbrechen, um das Dialogfeld zu schließen und alle Änderungen zu verwerfen, die Sie an den Eigenschaften vorgenommen haben.

Verbindungen zu Terminals herstellen

Verbinden Sie das Eingangsterminal des JMSSendeknotens mit dem Knoten, von dem abgehende Nachrichten weitergeleitet werden.

Verbinden Sie das Ausgangsterminal dieses Knotens mit einem anderen Knoten im Nachrichtenfluss, wenn Sie die Nachricht weiterverarbeiten, Fehler verarbeiten oder die Nachricht an eine zusätzliche Zieladresse senden möchten.

Koordinierte Transaktionen konfigurieren

Wenn Sie einen JMSSendeknoten in einen Nachrichtenfluss einschließen, definiert der Wert, den Sie für den Transaktionsmodus festgelegt haben, ob die Nachrichten unter Synchronisationspunktsteuerung empfangen werden.

  • Ist der Wert global, wird die Nachricht unter der externen Synchronisationspunktsteuerung empfangen, d. h. in einer WebSphere MQ-Arbeitseinheit. Alle Nachrichten, die nacheinander von einem Sendeknoten in derselben Instanz des Nachrichtenflusses gesendet wurden, werden unter Synchronisationspunktsteuerung gestellt, ausgenommen, der Sendeknoten hat dies explizit überschrieben.
  • Der Wert lokal bewirkt, dass die Nachricht unter der lokalen Synchronisationspunktsteuerung des JMSSendeknotens gesendet wird. Alle Nachrichten, die nacheinander von einem Sendeknoten im Nachrichtenfluss gesendet wurden, werden nicht unter die lokale Synchronisationspunktsteuerung (syncpoint-Bedingung) gestellt, es sei denn, ein einzelner Sendeknoten hat dies angegeben.
  • Der Wert Keine bewirkt, dass die Nachricht nicht unter Synchronisationspunktsteuerung gesendet wird. Jede abgeleitete Nachricht, die nachfolgend von einem Sendeknoten im Nachrichtenfluss gesendet wird, wird nicht unter dem Synchronisationspunkt eingereiht, es sei denn, ein einzelner Sendeknoten hat angegeben, dass die Nachricht unter dem Synchronisationspunkt eingereiht werden muss.

Der JMS-Provider kann zusätzliche JAR-Dateien bereitstellen, die zur Transaktionsunterstützung erforderlich sind. Lesen Sie hierzu die Dokumentation des JMS-Providers. Auf verteilten Plattformen (keine z/OS-Plattformen) stellt der JMS-Provider von WebSphere MQ die zusätzliche JAR-Datei com.ibm,mqetclient.jar zur Verfügung. Diese JAR-Datei muss auch zum Verzeichnis 'shared_classes' des Brokers hinzugefügt werden. Weitere Informationen finden Sie in diesem Abschnitt unter Client des JMS-Providers für JMS-Knoten verfügbar machen.

Für den Empfang von Nachrichten unter einem externen Synchronisationspunkt sind zusätzliche Konfigurationsschritte erforderlich. Diese Schritte gelten nur für die erste Implementierung eines JMSSende- oder JMSEmpfangsknoten auf dem Broker für einen bestimmten JMS-Provider:
  • Auf verteilten Plattformen wird als externer Synchronisationspunkt-Koordinator für den Broker WebSphere MQ verwendet. Vor der Implementierung eines Nachrichtenflusses, bei dem die Transaktionskoordination auf Global gesetzt ist, müssen Sie die INI-Datei des WS-Managers so ändern, dass für jeden Ressourcenmanager des JMS-Providers, der an global koordinierten Transaktionen mitwirkt, zusätzliche Definitionen enthalten sind.
    • Auf Windows-Systemen werden die Werte unter der Registerkarte mit den Eigenschaften 'WebSphere MQ Services Resource' konfiguriert. Weitere Informationen finden Sie im Handbuch WebSphere MQ System Administration Guide.
      Legen Sie für die Eigenschaft SwitchFile den folgenden wert fest:
      <Brokerinstallationspfad>/bin/ JMSSwitch.dll
      XAOpenString=<Ausgangskontext >,<JNDI-Position>, <Optional>
      ThreadOfControl=THREAD
    • Fügen Sie auf verteilten Plattformen (nicht Windows) für jeden JMS-Provider eine Zeilengruppe zu der INI-Datei des WS-Managers hinzu. Weitere Informationen finden Sie im Handbuch WebSphere MQ System Administration Guide.
      Beispiel:
      XAResourceManager:  
      Name=<Name_des_JMS-Providers>
      SwitchFile=/<Brokerinstallationspfad>/bin/ JMSSwitch.so
      XAOpenString=<Ausgangskontext >,<JNDI-Position>, <Optional>
      ThreadOfControl=THREAD
      Dabei gilt:

      Name ist ein bei der Installation definierter Name, der einen Ressourcenmanager des JMS-Providers identifiziert.

      SwitchFile ist der Dateisystempfad zur JMSSwitch-Bibliothek, der im Brokerverzeichnis bin angegeben wird.

      Für XAOpenString gelten folgende Werte:
      • Ausgangskontext ist der Wert, der in der Basiseigenschaft Ausgangskontextfactory des JMSEmpfangsknotens festgelegt wurde.
      • JNDI-Position ist der Wert, der in der Basiseigenschaft JNDI-Position des JMSEmpfangsknotens festgelegt wurde. Dieser Wert sollte eines der führenden Schlüsselwörter file:/, iiop:/ oder ldap:/ als Vorzeichen enthalten.
      Die folgenden Parameter sind optional:
      • LDAP-Principal; entspricht dem Wert, der mit den Befehlen mqsicreatebroker oder mqsichangebroker für den Broker festgelegt wurde.
      • LDAP-Berechtigungsnachweise; entspricht dem Wert, der mit den Befehlen mqsicreatebroker oder mqsichangebroker für den Broker festgelegt wurde.
      • Name der Wiederherstellungs-Verbindungsfactory; entspricht der JNDI-verwalteten Verbindungsfactory, die in den JNDI-Bindungen definiert ist. Wenn kein Wert angegeben wird, muss den JNDI-Bindungen ein Standardwert für recoverXAQCF hinzugefügt werden. In jedem Fall sollte die Wiederherstellungs-Verbindungsfactory für den JMS-Provider, der der Ausgangskontext-Factory zugeordnet ist, als eine XA-Wartenschlangenverbindungsfactory definiert werden.

      Die optionalen Parameter werden durch Kommas getrennt und sind positionsgebunden. Aus diesem Grund müssen fehlende Parameter durch ein Komma dargestellt werden.

      1. Aktualisieren Sie die Java-Umgebungsvariable CLASSPATH für den WS-Manager des Brokers, um einen Verweis zu der Datei 'xarecovery.jar' einzufügen. Beispiel:
        <Brokersinstallationspfad>/classes/xarecovery.jar
      2. Aktualisieren Sie die Java-Umgebungsvariable PATH für den WS-Manager des Brokers, um auf das Verzeichnis 'bin' zu verweisen, in dem sich die Switch-Datei befindet. Beispiel:
        <Brokerinstallationspfad>/bin

      XA kann bis WebSphere MQ Version 5.3, CSD12 und WebSphere MQ Version 6 Fixpack 1 nicht den gleichen WS-Manager für den Broker und den Provider verwenden.

    • Unter z/OS wird als externer Synchronisationspunktmanager RRS (Resource Recovery Services) verwendet. Unter z/OS wird als JMS-Provider lediglich WebSphere MQ unterstützt. Die Bindungsoption (Bind) ist die einzige Transport-Option, die für WebSphere MQ JMS unter z/OS unterstützt wird.

      Die Synchronisationspunktsteuerung für den JMS-Provider wird mit der RRS-Synchronisationspunkt-Koordination des WS-Manager des Brokers verwaltet. Die Datei .ini muss nicht geändert werden.

Terminals und Eigenschaften

In der nachfolgenden Tabelle werden die Terminals des JMSSendeknotens beschrieben.

Terminal Beschreibung
Fehlerterminal Das Ausgabeterminal, an das die Nachricht weitergeleitet wird, wenn ein Fehler auftritt. Auch wenn die Eigenschaft 'Auswertung' angegeben ist, werden an dieses Terminal weitergegebene Nachrichten nicht ausgewertet.
Out Das Ausgabeterminal, an das die Nachricht weitergeleitet wird, wenn sie erfolgreich von der WebSphere MQ-Warteschlange abgerufen wird.
Abfangterminal Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn nachgeschaltet eine Ausnahmebedingung ausgegeben und von diesem Knoten abgefangen wurde.

In der nachfolgenden Tabelle werden die Knoteneigenschaften beschrieben. Die Spalte M zeigt an, ob die Eigenschaft obligatorisch ist (markiert mit einem Sternchen im Eigenschaftendialog, ob Sie einen Wert eingeben müssen, wenn kein Standardwert definiert ist). Die Spalte C zeigt an, ob die Eigenschaft konfigurierbar ist (Sie können den Wert ändern, wenn Sie der BAR-Datei den Nachrichtenfluss hinzufügen, um ihn einzusetzen).

In der nachfolgenden Tabelle werden die Basiseigenschaften des JMSSendeknotens beschrieben.

Eigenschaft M C Standardwert Beschreibung
Ausgangskontext-Factory Ja   com.sun.jndi.fscontext.RefFSContextFactory Dies ist der Ausgangspunkt für einen JNDI-Namespace. Eine JMS-Anwendung verwendet den Ausgangskontext, um die Verbindungsfactory sowie Warteschlangen oder Themenobjekte für den JMS-Provider abzurufen und zu suchen.

Der Standardwert entspricht dem Wert, der verwendet wird, wenn WebSphere MQ Java als JMS-Provider eingesetzt wird.

Position der JNDI-Bindungen Nein     Der Systempfad oder die LDAP-Position für die Bindungsdatei.
Name der Verbindungsfactory Nein     Der Name der Verbindungsfactory, der vom JMSSendeknoten für die Erstellung einer Verbindung zum JMS-Provider verwendet wird.

In der nachfolgenden Tabelle werden die erweiterten Eigenschaften des JMSSendeknotens beschrieben.

Eigenschaft M C Standardwert Beschreibung
Neue Korrelations-ID Nein     Diese Eigenschaft ist ausgewählt, wenn eine Neue Korrelations-ID erforderlich ist.
Transaktionsmodus Ja Nein Keine Diese Eigenschaft gibt an, ob die ankommende Nachricht unter Synchronisationspunktsteuerung empfangen wird. Gültige Werte sind Keine, local und Global.
Zustellmodus Nein   Nicht permanent Nachrichtenselektor, der Nachrichten gemäß dem Nachrichtenübermittlungsmodus filtern wird.
Nachrichtenablauf Nein   0 Mit diesem Eigenschaftenwert wird angefordert, dass der JMS-Provider die JMS-Ausgabenachricht für eine bestimmte Zeit aufbewahrt.

Die Werte werden in Millisekunden angegeben, und der Standardwert 0 zeigt an, dass die Nachricht nicht ablaufen darf.

Nachrichtenpriorität Nein   4 Durch diesen Eigenschaftenwert wird der Nachricht eine relative Bedeutung zugewiesen. Dieser Wert kann von einer empfangenden JMS-Clientanwendung oder einem JMSSendeknoten für die Nachrichtenauswahl verwendet werden.

In der nachfolgenden Tabelle werden die Beschreibungseigenschaften des JMSSendeknotens beschrieben.

Eigenschaft M C Standardwert Beschreibung
Kurzbeschreibung Nein Nein   Kurze Beschreibung des Knotens
Ausführliche Beschreibung Nein Nein   Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt.
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 18.05.2006
ac24830_