JMSInput-Knoten

Mit dem JMSInput-Knoten können Sie Nachrichten von JMS-Zieladressen empfangen. Der Zugriff auf JMS-Zieladressen erfolgt über eine Verbindung zu einem JMS-Provider.

Dieses Thema enthält folgende Abschnitte:

Zweck

Der JMSInput-Knoten agiert als JMS-Nachrichtenkonsument und kann alle sechs Nachrichtentypen empfangen, die in der Java Message Service Specification, Version 1.1 definiert sind. Nachrichten werden mithilfe von Methodenaufrufen empfangen, die in der JMS-Spezifikation beschrieben sind.

Der JMSInput-Knoten befindet sich im Ablagefach JMS der Palette und wird in der Workbench durch folgendes Symbol dargestellt:

Symbol für JMSInput-Knoten

JMSInput-Knoten in einem Nachrichtenfluss verwenden

Das folgende Beispiel enthält einen Nachrichtenfluss, in dem der JMSInput-Knoten verwendet wird. Anhand dieses Beispiels wird die Verwendung des JMSInput-Knotens demonstriert. Sie können Beispiele nur anzeigen, wenn Sie das Information Center verwenden, das im Message Brokers Toolkit integriert ist.

Nachrichtenflüsse, die Nachrichten handhaben, die von Verbindungen mit JMS-Providern empfangen werden, müssen immer mit einem JMSInput-Knoten beginnen. Sie können jeden der unterstützten Sendeknoten (einschließlich benutzerdefinierter Sendeknoten) in einen Nachrichtenfluss aufnehmen, der mit einem JMSInput-Knoten beginnt; es muss sich hierbei nicht um einen JMSOutput-Knoten handeln. Wenn Sie jedoch keinen JMSOutput-Knoten einschließen, müssen Sie den JMSMQTransform-Knoten einschließen, um die Nachricht in das Format umzuwandeln, das vom Sendeknoten erwartet wird.

Wenn Sie JMS-Nachrichten weitergeben und einen Nachrichtenfluss entsprechend erstellen, dass er einen untergeordneten Fluss verwendet, können Sie keinen Standardsendeknoten verwenden, sondern müssen eine Instanz des JMSInput-Knotens als ersten Knoten nehmen, um ein Eingangsterminal für den untergeordneten Fluss zu erstellen.

Beginn der ÄnderungBei Verwendung von 32-Bit-Ausführungsgruppen in einer standardmäßigen 64-Bit-Hostumgebung müssen Sie die WebSphere MQ JMS Java-Bibliothekspfade in der Variablen MQSI_LIBPATH32 festlegen. Beispiel:
export MQSI_LIBPATH32=$MQSI_LIBPATH32:/usr/mqm/lib:/usr/mqm/java/lib
Ende der Änderung
Einschränkung: Wenn der JMSInput-Knoten Veröffentlichungsthemen empfängt, beschränkt er die Nachrichtenflusseigenschaft Zusätzliche Instanzen intern auf null, um den Empfang von doppelten Veröffentlichungen zu verhindern.

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

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.

Mit dem Befehl mqsireportproperties können Sie einen oder mehrere der definierten konfigurierbaren Services anzeigen. Im folgenden Beispiel werden alle konfigurierbaren Services angezeigt, die für einen einzelnen Broker verfügbar sind:
mqsireportproperties Brokername -c AllTypes -o AllReportableEntityNames -r 
  • Wenn Sie den WebSphere MQ-JMS-Provider verwenden möchten und WebSphere MQ an der Standardposition im Brokersystem installiert haben, sind die Eigenschaften bereits festgelegt und Sie müssen keine Änderungen vornehmen.
  • Wenn Sie den WebSphere MQ-JMS-Provider verwenden möchten und Sie WebSphere MQ nicht an der Standardposition installiert haben oder wenn Sie einen der anderen definierten Services verwenden möchten, müssen Sie die Eigenschaft jarsURL festlegen, um die Position der JAR-Dateien des Service im Brokersystem zu identifizieren.

    Mit dem Befehl mqsireportproperties können Sie die Providereigenschaften anzeigen. Mit dem Befehl mqsichangeproperties können Sie die Eigenschaften festlegen oder modifizieren.

  • Wenn kein Service für Ihren JMS-Provider definiert ist oder wenn Sie einen anderen Service für einen vorhandenen JMS-Provider erstellen möchten, verwenden Sie den Befehl mqsicreateconfigurableservice zur Identifikation des neuen Service und zum Setzen der entsprechenden Eigenschaften.
  • Wählen Sie bei der Konfiguration des Knotens den entsprechenden Service in der Liste der vordefinierten Services aus, die für die Eigenschaft Name des JMS-Providers angezeigt werden, oder geben Sie den Namen des erforderlichen Service an.

Verbindungen zu Terminals herstellen

Jede erfolgreich empfangene Nachricht wird vom JMSInput-Knoten an das Ausgangsterminal weitergeleitet. Schlägt die Weiterleitung fehl, wird die Nachricht erneut weitergeleitet. Falls der Schwellenwert für die Wiederholung an dem Punkt erreicht wird, an dem der Schwellenwert durch die Eigenschaft Rücksetzschwellenwert des Knotens definiert ist, wird die Nachricht an das Fehlerterminal weitergeleitet. Sie können das Fehlerterminal mit Knoten verbinden, um diese Bedingung zu handhaben.

Wenn eine Ausnahmebedingung im Fehlerpfad auftritt, wird der Pfad so lange wiederholt, bis die Anzahl der Versuche den Wert Rücksetzschwellenwert um das Zweifache übersteigt. Wenn dieser Grenzwert überschritten wird, wird die Nachricht an das Rücksetzziel übergeben.

Wenn Sie keine Knoten mit dem Fehlerterminal verbunden haben, wird die Nachricht in das Rücksetzziel geschrieben. Wurde kein Rücksetzziel angegeben, gibt der Knoten die Fehlernachricht BIP4669 aus und stoppt die Verarbeitung weiterer eingehender Nachrichten.

Wenn die Nachricht vom JMSInput-Knoten abgefangen wird, nachdem eine Ausnahmebedingung an einer anderen Stelle im Fluss generiert wurde, wird die Nachricht an das Catch-Terminal weitergeleitet. Wenn keine Knoten mit dem Catch-Terminal verbunden wurden, setzt der Knoten die Nachricht für eine erneute Zustellung so lange zurück, bis das Problem behoben ist oder der Rücksetzschwellenwert erreicht wird. Wird kein Rücksetzziel definiert, gibt der Knoten die Fehlernachricht BIP4669 aus und stoppt die Verarbeitung weiterer eingehender Nachrichten.

Koordinierte Transaktionen konfigurieren

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

  • Wenn Sie diese Eigenschaft auf Global setzen, wird die Nachricht unter der externen Synchronisationspunktsteuerung empfangen, d. h. in einer WebSphere MQ-Arbeitseinheit. Alle Nachrichten, die später von einem Sendeknoten in derselben Instanz des Nachrichtenflusses gesendet werden, unterliegen der Synchronisationspunktsteuerung, es sei denn, der Sendeknoten setzt diese Einstellung explizit außer Kraft.
  • Wenn Sie diese Eigenschaft auf Lokal setzen, wird die Nachricht unter der lokalen Synchronisationspunktsteuerung des JMSInput-Knotens empfangen. Alle Nachrichten, die später von einem Sendeknoten im Nachrichtenfluss gesendet werden, unterliegen nicht der lokalen Synchronisationspunktsteuerung, es sei denn, ein einzelner Sendeknoten hat dies explizit vorgegeben.
  • Wird der Wert für diese Eigenschaft auf Keine gesetzt, unterliegt der Empfang der Nachricht nicht der Synchronisationspunktsteuerung. Alle Nachrichten, die später von einem Sendeknoten im Nachrichtenfluss gesendet werden, unterliegen nicht der Synchronisationspunktsteuerung, es sei denn, ein einzelner Sendeknoten gibt dies explizit vor.
Für den Empfang von Nachrichten unter einer externen Synchronisationspunktsteuerung müssen Sie zusätzliche Konfigurationsschritte ausführen, die nur erforderlich sind, wenn ein JMSOutput- oder JMSInput-Knoten zum ersten Mal für einen bestimmten JMS-Provider auf dem Broker eingesetzt wird.
  • Auf verteilten Systemen wird WebSphere MQ als externer Synchronisationspunkt-Koordinator für den Broker verwendet. Vor der Implementierung eines Nachrichtenflusses, bei dem die Eigenschaft Transaktionsmodus auf Global gesetzt ist, müssen Sie die .ini-Datei des WS-Managers so ändern, dass darin für jeden Ressourcenmanager des JMS-Providers, der an global koordinierten Transaktionen mitwirkt, zusätzliche Definitionen enthalten sind.
    • Windows platform Unter Windows, wenn WebSphere MQ Version 5 installiert ist:
      1. Starten Sie die WebSphere MQ-Services.
      2. Klicken Sie mit der rechten Maustaste auf den Namen des Warteschlangenmanagers, und klicken Sie auf Eigenschaften.
      3. Klicken Sie auf die Registerkarte Ressourceneigenschaften.
      4. Legen Sie für die Eigenschaft SwitchFile den folgenden Wert fest:
        Installationsverzeichnis/bin/ JMSSwitch.dll  
        XAOpenString=Ausgangskontext, JNDI-Position, Optionale Parameter
        ThreadOfControl=THREAD 
    • Windows platform Unter Windows, wenn WebSphere MQ Version 6.0 installiert ist:
      1. Starten Sie den WebSphere MQ-Explorer.
      2. Klicken Sie im linken Teilfenster mit der rechten Maustaste auf den Namen des Warteschlangenmanagers, und klicken Sie auf Eigenschaften.
      3. Klicken Sie im linken Teilfenster auf XA-Ressourcenmanager.
      4. Legen Sie für die Eigenschaft SwitchFile den folgenden Wert fest:
        Installationsverzeichnis/bin/ JMSSwitch.dll  
        XAOpenString=Ausgangskontext, JNDI-Position, Optionale Parameter
        ThreadOfControl=THREAD 
      Weitere Informationen finden Sie im Bereich System Administration Guide des WebSphere MQ Version 6 Information Center online oder im Version 5.3-Handbuch auf der Webseite der Bibliothek zu WebSphere MQ.
    • Linux platformUNIX platform Fügen Sie auf Linux- und UNIX-Systemen für jeden JMS-Provider eine Zeilengruppe zur .ini-Datei des WS-Managers hinzu.
      Beispiel:
      XAResourceManager:
      Name=Name_des_JMS-Providers 
      SwitchFile=/Installationsverzeichnis/bin/ JMSSwitch.so
      XAOpenString=Ausgangskontext, JNDI-Position, Optionale Parameter
      ThreadOfControl=THREAD
      Dabei gilt:
      Name
      Ein bei der Installation definierter Name, der einen Ressourcenmanager des JMS-Providers identifiziert.
      SwitchFile
      Der Dateisystempfad zur JMSSwitch-Bibliothek, der im Brokerverzeichnis bin angegeben wird.
      XAOpenString kann folgende Werte haben:
      • Ausgangskontext ist der Wert, der in der Eigenschaft Ausgangskontextfactory des JMSInput-Knotens festgelegt wurde.
      • JNDI-Position ist der Wert, der in der Eigenschaft Location JNDI bindings (Position der JNDI-Bindungen) des JMSInput-Knotens festgelegt wurde. Dieser Wert sollte eines der folgenden führenden Schlüsselwörter als Vorzeichen enthalten: file://, iiop:// oder ldap://.
      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 zur JMS-Bindungsdatei ein Standardwert für recoverXAQCF hinzugefügt werden. In jedem Fall muss die Wiederherstellungs-Verbindungsfactory für den JMS-Provider, der der Ausgangskontext-Factory zugeordnet ist, als eine XA-Warteschlangenverbindungsfactory 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, indem Sie einen Verweis auf die Datei xarecovery.jar einfügen, z. B.:
        Installationsverzeichnis/classes/xarecovery.jar
      2. Aktualisieren Sie die Java-Umgebungsvariable PATH für den WS-Manager des Brokers, sodass sie auf das Verzeichnis 'bin' verweist, in dem sich die Switch-Datei befindet, z. B.:
        Installationsverzeichnis/bin

    Weitere Informationen finden Sie im Bereich System Administration Guide des WebSphere MQ Version 6 Information Center online oder im Version 5.3-Handbuch auf der Webseite der Bibliothek zu WebSphere MQ.

    Um denselben Warteschlangenmanager sowohl für den Broker als auch für den JMS-Provider verwenden zu können, muss sichergestellt werden, dass die WebSphere MQ-Installation mindestens auf folgendem Stand ist: Version 5.3 CSD12 oder Version 6.0 Fixpack 1.

    Um denselben WS-Manager sowohl für den Broker als auch den JMS-Provider zu verwenden, müssen Sie sicherstellen, dass Ihre WebSphere MQ-Installation mindestens auf folgendem Stand ist: WebSphere MQ Version 6.0 Fixpack 1 oder höher ist erforderlich für XA, damit der gleiche WS-Manager für den Broker und den Provider verwendet wird.

  • z/OS platform Unter z/OS wird als externer Synchronisationspunktmanager RRS (Resource Recovery Services) verwendet. Unter z/OS wird als JMS-Provider lediglich WebSphere MQ JMS unterstützt. Die Bindungsoption ist die einzige Transportoption, 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

Nachdem Sie eine Instanz des JMSInput-Knotens in einen Nachrichtenfluss eingereiht haben, können Sie ihn konfigurieren; siehe Nachrichtenflussknoten konfigurieren. Die Knoteneigenschaften werden in der Eigenschaftenansicht angezeigt. Klicken Sie zum Anzeigen der Knoteneigenschaften im Eigenschaftendialog entweder doppelt auf den Knoten, oder klicken Sie mit der rechten Maustaste und anschließend auf Eigenschaften. Alle verbindlichen Eigenschaften, für die kein Standardwert definiert ist, sind mit einem Stern markiert.

In der folgenden Tabelle werden die Terminals des JMSInput-Knotens beschrieben.
Terminal Beschreibung
Fehlerterminal Das Ausgabeterminal, an das die Nachricht weitergeleitet wird, wenn ein Fehler auftritt. Selbst wenn die Eigenschaft 'Auswerten' festgelegt wird, werden Nachrichten, die an dieses Terminal weitergegeben werden, nicht ausgewertet.
Ausgabeterminal Das Ausgabeterminal, an das die Nachricht weitergeleitet wird, wenn sie erfolgreich abgerufen wird.
Catch-Terminal Das Ausgabeterminal, an das die Nachricht weitergeleitet wird, wenn eine Ausnahmebedingung generiert und von diesem Knoten abgefangen wird.

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).

In der folgenden Tabelle werden die Beschreibungseigenschaften des JMSInput-Knotens beschrieben.
Eigenschaft O K Standardwert Beschreibung
Knotenname Nein Nein Knotentyp JMSInput 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
In der folgenden Tabelle werden die JMS-Verbindungseigenschaften des JMSInput-Knotens beschrieben.
Eigenschaft O K Standardwert Beschreibung
Ausgangskontext-Factory Ja Ja com.sun.jndi.fscontext. RefFSContextFactory Der Ausgangspunkt für einen JNDI-Namespace.

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 lautet com.sun.jndi.fscontext.RefFSContextFactory. Mit diesem Wert wird die dateibasierte Ausgangskontext-Factory für den JMS-Provider von WebSphere MQ definiert. Informationen zum Namen der Ausgangskontext-Factory für den JMS-Provider finden Sie in der Dokumentation des JMS-Providers.

Wo die JNDI-Bindungen liegen Ja Ja   Der Systempfad oder die LDAP-Position für die Bindungsdatei. Die Bindungsdatei enthält Definitionen für die verwalteten JNDI-Objekte, die vom JMSInput-Knoten verwendet werden.
Wenn Sie einen Wert für Wo die JNDI-Bindungen liegen eingeben, sind dabei folgende Anweisungen einzuhalten:
  • Erstellen Sie die Bindungsdatei vor der Implementierung eines Nachrichtenflusses, der einen JMSInput-Knoten 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, konfigurieren Sie den LDAP-Principal (Benutzer-ID) und die LDAP-Berechtigungsnachweise (Kennwort) separat. Diese Werte werden auf Brokerebene konfiguriert. Informationen zur Konfiguration dieser Werte finden Sie in den Abschnitten Befehl mqsicreatebroker und Befehl mqsichangebroker.
  • Der Zeichenfolgewert muss eines der folgenden führenden Schlüsselwörter als Vorzeichen enthalten:
    • file://
    • iiop://
    • ldap://

Informationen zum Erstellen der Bindungsdatei für verwaltete JNDI-Objekte finden Sie in der Dokumentation des JMS-Providers.

Verbindungsfactory-Name Ja Ja   Der Name der Verbindungsfactory, der vom JMSInput-Knoten für die Erstellung einer Verbindung zum JMS-Provider verwendet wird. Dieser Name muss in der Bindungsdatei bereits vorhanden sein.
Rücksetzziel Nein Ja   Wenn der Nachrichtenfluss aufgrund von Fehlern die Nachricht nicht verarbeiten kann, werden Eingabenachrichten vom JMSInput-Knoten an diese Zieladresse gesendet, und die Nachricht muss aus dem Eingabeziel entfernt werden. Der Name des Rücksetzungsziels muss in der Bindungsdatei enthalten sein.
Rücksetzschwellenwert Nein Ja 0 Der Wert, über den gesteuert wird, wann eine erneut zugestellte Nachricht in das Rücksetzziel gestellt wird. Wenn der Wert beispielsweise 3 lautet, versucht der JMS-Provider drei Mal, die Nachricht an die Eingabezieladresse zuzustellen. Nach dem dritten Zustellungsversuch wird die Nachricht aus der Eingabezieladresse entfernt und an das Rücksetzziel gesendet.
In der folgenden Tabelle werden die erweiterten Eigenschaften des JMSInput-Knotens beschrieben.
Eigenschaft O K Standardwert Beschreibung
Transaktionsmodus Ja Nein Keine Durch diese Eigenschaft wird gesteuert, ob die eingehende Nachricht unter externer Synchronisationspunktsteuerung, lokaler Synchronisationspunktsteuerung oder außerhalb eines Synchronisationspunktes empfangen wird.
  • Wählen Sie Keine aus, wenn die eingehende Nachricht als nicht persistent behandelt werden soll. Wenn Sie diesen Wert auswählen, wird die Nachricht über eine JMS-Sitzung ohne Transaktionsunterstützung empfangen, die mithilfe des Attributs Session.AUTO_ACKNOWLEDGE erstellt wird.
  • Wählen Sie Lokal aus, wenn der JMSInput-Knoten die Festschreibung oder Rücksetzung der vom Knoten empfangenen JMS-Nachrichten zusammen mit anderen Ressourcen (z. B. DB2 oder WebSphere MQ), die Arbeiten im Nachrichtenfluss ausführen, koordinieren muss. Wenn Sie diesen Wert auswählen, verwendet der Knoten eine JMS-Sitzung mit Transaktionsunterstützung.
  • Wählen Sie Global aus, wenn der JMSInput-Knoten an einer globalen Nachrichtenflusstransaktion teilnehmen muss, die vom externen Synchronisationspunkt-Koordinator des Brokers verwaltet wird. Beim Synchronisationspunkt-Koordinator handelt es sich auf verteilten Systemen um den Warteschlangenmanager des Brokers und unter z/OS um RRS (Resource Recovery Services). Wenn Sie diesen Wert auswählen, werden alle Nachrichten, die vom Knoten empfangen werden, mithilfe einer XA-JMS-Sitzung global koordiniert.
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009. Alle Rechte vorbehalten.
Letzte Aktualisierung : 2009-02-17 15:49:30

ac24820_