Show TOC

JMS-Sender-Adapter konfigurierenLocate this document in the navigation structure

Verwendung

Sie konfigurieren den JMS-Sender-Adapter, um JMS-Messages an die Integration Engine oder das PCK zu versenden.

Voraussetzungen

Für den definierten Kommunikationskanal kann es nur eine Sendervereinbarung geben.

Vorgehensweise
  1. Wählen Sie unter Transportprotokoll den JMS-Provider:

    • SonicMQ JMS-Provider

    • WebSphereMQ (nicht-JMS)

    • Zugriff auf JMS-Provider mit JNDI

    • Administrierbare Objekte des JMS-Provider aus Datei lesen

    • Generischer Zugriff auf JMS-Provider

  2. Das Message-Protokoll ist JMS 1.x.

  3. Wählen Sie die Adapter Engine auf dem Integration Server aus oder wählen Sie eine dezentral installierte Adapter Engine aus.

    Diese Auswahl ist im PCK nicht möglich.

Verbindungsparameter definieren

  1. Wählen Sie die Registerkarte Quelle.

  2. Wenn Sie eine Verbindung zu einem JMS-Topic herstellen möchten, markieren Sie das Ankreuzfeld Topic-Unterstützung aktivieren.

  3. Je nach ausgewähltem Transportprotokoll geben Sie die Verbindungsparameter für den JMS-Provider ein.

    SonicMQ JMS-Provider-Einstellungen definieren

    WebSphereMQ (MQ Series) JMS-Provider-Einstellungen definieren

    JMS-Provider-Einstellungen für Zugriff über JNDI definieren

    Dateien für administrierbare Objekte des JMS-Providers angeben

    Generischen Zugriff auf JMS-Provider definieren

  4. Wenn Sie zusätzliche Einstellungen vornehmen oder Voreinstellungen ersetzen möchten, wählen Sie Weitere JMS-Parameter setzen oder Voreinstellungen ersetzen und geben Sie Parameter und Werte in die Tabelle ein.

    Beispiel

    Sie können hier beispielsweise folgende Parameter und Werte setzen:

    JMSMessageClass mit Wert com.ibm.jms.JMSMessage

    JMS.Messagè.method.setStringProperty mit Wert java.lang.String XAppId, java.lang.String myapp

Initialkontext-Eigenschaften definieren

  1. Geben Sie Name und Wert der Initialkontext-Eigenschaften in der Tabelle ein. Vor SAP NetWeaver PI Release 7.20 konnten die Initialkontext-Eigenschaften in der Tabelle der zusätzlichen Parameter angegeben werden. Jetzt können Sie diese Eigenschaften wie folgt festlegen:

    Name

    Value

    propertyName

    propertyValue

    Hinweis

    Sowohl propertyName als auch propertyValue sind Strings.

    Diese Tabelle ist nur verfügbar, wenn Sie für das Transportprotokoll JNDI-Lookup des JMS-Provider wählen.

JMS-Einstellungen definieren

  1. Wählen Sie die Registerkarte Verarbeitung.

  2. Falls eine transaktionale JMS-Session verwendet werden soll, wählen Sie Transaktionale JMS-Session.

    Hinweis

    Die transaktionale JMS-Session ist die Standardeinstellung und wird empfohlen. Wenn Sie diese Einstellung nicht verwenden, kann nicht garantiert werden, dass die Message zugestellt wird. In diesem Fall kann die Message verloren gehen.

    Eine transaktionale Session wird nach der Verarbeitung einer Message entweder mit COMMIT abgeschlossen oder im Fehlerfall mit ROLLBACK zurückgesetzt.

  3. Geben Sie den Benutzer und das Kennwort mit Bestätigung für den Zugriff auf JMS-Queue/-Topic ein.

  4. Geben Sie unter JMS Message Selector Bedingungen an, die eine JMS-Message in der angegebenen JMS-Queue erfüllen muss, damit sie vom Sender-Adapter verarbeitet wird.

    Weitere Informationen zum JMS-Message-Selector finden Sie im Internet unter java.sun.com/j2ee/sdk_1.3/techdocs/api/index.html und dort unter javax.jms und Message.

Korrelationseinstellungen definieren

  1. Legen Sie fest, nach welchem Algorithmus die Message-ID einer neuen PI-Message erstellt werden soll.

    Bei der ID muss es sich um einen GUID (Globally Unique Identifier) nach ISO 11578 handeln.

    Ist die Message-ID kein GUID, schlägt die Message-Verarbeitung fehl. Es kann zu Message-Duplikaten kommen, falls die ID nicht eindeutig ist. Dies kann außerdem zu einer GUIDFormatException führen.

    • Setzen Sie die PI-Message-ID auf:

      • GUID (empfohlener Wert)

      • JMSMessageID (Eindeutigkeit ist JMS-Provider-abhängig)

      • JMSCorrelationID (Eindeutigkeit ist JMS-Sender-abhängig)

      • JMSProperty (Eindeutigkeit ist JMS-Sender-abhängig)

        Geben Sie den JMS-Eigenschaftsnamen an. Dieser Wert wird für die PI-Message-ID gesetzt.

        Sind JMSCorrelationID oder JMSProperty in der JMS-Message nicht gesetzt, dann wird automatisch eine Message-ID generiert.

    • Haben Sie JMSMessageID, JMSCorrelationID oder JMSProperty gewählt und ist in diesen Feldern eine JMS-Message-ID hinterlegt, wählen Sie ('ID:') ID-Markierung von JMSMessageID entfernen.

      Die JMS-Spezifikation schreibt vor, dass jede JMS-Message-ID mit der Kennung 'ID' beginnt. Das widerspricht jedoch der Norm ISO-11578.

    • PI-Konversations-ID (ConversationID) setzen auf:

      • Kein Wert

        Die PI-Konversations-ID ist nicht gesetzt.

      • JMSMessageID (Eindeutigkeit ist JMS-Provider-abhängig)

      • JMSCorrelationID (Eindeutigkeit ist JMS-Sender-abhängig)

      • JMSProperty (Eindeutigkeit ist JMS-Sender-abhängig)

        Geben Sie den JMS-Eigenschaftsnamen an. Dieser Wert wird für die PI-Message-ID gesetzt.

      • Gespeicherte JMSCorrelationID des Request

        Hier wird die gesicherte JMSCorrelationID des Requests verwendet.

Einstellungen für die Behandlung von Duplikaten definieren

  • Wenn Sie einen Alert für doppelte Messages einstellen möchten, wählen Sie Behandlung von Duplikaten aktivieren und führen die folgenden Schritte durch.

    1. Geben Sie einen Schwellenwert für doppelte Messages ein, ab dem ein Alert für doppelte Messages ausgelöst wird.

      Beispiel

      Wenn Sie als Schwellenwert für doppelte Messages den Wert n eingeben, wird für die doppelte Message n+1 ein Alert ausgelöst.

    2. Wenn Sie nach Überschreiten des Schwellenwerts den Kanal deaktivieren (also keine weiteren Messages mehr verarbeiten) möchten, wählen Sie Kanal bei Schwellenwertüberschreitung deaktivieren.

  • Wenn Sie möchten, dass die von unterschiedlichen Kanälen empfangenen doppelten Messages (also JMS-Messages mit der gleichen Message-ID) als eigene JMS-Messages und nicht als doppelte Messages verarbeitet werden, wählen Sie Kanal-ID als Präfix für JMS-Message-ID verwenden.

    Hinweis
    • Diese Option ist nur für Kanäle relevant, die mit einer JMS-Queue verbunden sind.

    • Dies ist eine Standardfunktion für Kanäle, die mit einem JMS-Topic verbunden sind.

Einstellungen für den Conntector definieren

  • Wenn Sie Messages vom JMS-Provider über einen Message Listener empfangen möchten, wählen Sie Message-Listener-basierten Connector verwenden.

  • Wenn Sie Messages vom JMS-Provider über Message Polling empfangen möchten, führen Sie die folgenden Schritte durch.

    1. Geben Sie das Message-Poll-Intervall (mSek.) als Zeitraum zwischen den Aufrufen ein, über die Messages von den JMS-Provider-Destinationen empfangen werden.

    2. Geben Sie die Message-Empfangswartezeit (mSek.) als Wert für die Zeitüberschreitung ein, die für den Aufruf zum Empfang von Messages von den JMS-Provider-Destinationen angegeben wird.

    Hinweis
    • Dies ist das Standardvorgehen zum Empfangen von Messages vom JMS-Provider.

    • Message Polling ist das empfohlene Vorgehen zum Empfang von Messages von JMS-Provider-Destinationen.

PI-Einstellungen definieren

  1. Wählen Sie das Mapping der Message:

    • Wenn die gesamte Message in der JMS-Payload enthalten sein soll, wählen Sie Gesamte Message = JMS-Payload.

    • Wenn nur die Payload der Message in die JMS-Payload eingestellt werden soll, dann wählen Sie Message-Payload = JMS-Payload.

  2. In der Dropdown-Bxo Quality-of-Service wählen Sie den Typ des Quality-of-Service (QoS) und führen folgende Teilschritte aus:

    1. In das Feld Queue-ID geben Sie die Queue-ID ein.

      Hinweis

      Diese Option ist nur für den QoS Exactly-Once-in-Order verfügbar.

    2. Im Feld Verarbeitender J2EE-Cluster-Server (Cluster-ID) geben Sie die Cluster-ID des Knotens ein, auf dem der JMS-Adapter die Message verarbeiten soll.

      Hinweis

      Wenn Sie die Cluster-ID nicht angeben, führt der JMS-Adapter die Message auf dem ersten verfügbaren Knoten im Cluster aus.

      Diese Option ist nicht auf alle Kanäle anwendbar, die sich mit JMS-Queues verbinden und den QoS Exactly-Once haben.

      Kanäle, die sich mit JMS-Topics verbinden, sind unabhängig von der QoS-Konfiguration nur auf einem Knoten aktiv.

    Weitere Informationen finden Sie unter Quality-of-Service.

  3. Um nach doppelten Messages suchen zu können, müssen IDs auf der Datenbank gesichert werden. Damit die Größe der Datenbank nicht unnötig wächst, werden diese IDs nach einiger Zeit gelöscht.

    Geben Sie unter Zeitraum für Duplikatsprüfung für EI(IO) in Sek an, wann die IDs gelöscht werden sollen.

    Das Löschen kann beispielsweise nach einem Tag erfolgen, wenn Sie täglich das Message-Monitoring kontrollieren.

Einstellungen für die Fehlerbehandlung definieren

  1. Geben Sie unter Warten nach Message-Fehler (ms) die Anzahl der Millisekunden an, die bei einem Verarbeitungsfehler gewartet werden soll, bis weitere Messages verarbeitet werden.

    Eine gewisse Wartezeit kann beispielsweise bei transaktionaler Verarbeitung sinnvoll sein, da fehlerhafte Messages nach einem ROLLBACK in der Queue stehen bleiben.

  2. Geben Sie unter Warten bis zur neuen Verbindung (ms) einen Zeitraum an, nachdem bei einem JMS-seitigen Verbindungsfehler versucht werden soll, die Verbindung erneut aufzubauen.

    Geben Sie -1 ein, wird nicht versucht, die Verbindung erneut aufzubauen.

    Diese Funktion setzt voraus, dass Ihr JMS-Provider die Registrierung eines ExceptionListener unterstützt.

Adapterspezifische Message-Attribute definieren

  1. Wählen Sie die Registerkarte Erweitert.

  2. Um Adapterattribute im Message-Header der PI-Message abzulegen, wählen Sie Adapterspezifische Message-Attribute setzen.

    Um die folgenden Attribute im PI-Message-Header anzuwenden, setzen Sie das jeweilige Kennzeichen:

    • Korrelations-ID der JMS-Message: (technischer Name: DCJMSCorrelationID)

    • Auslieferungsmodus der JMS-Message: (technischer Name: DCJMSDeliveryMode)

    • Destination der JMS-Message: (technischer Name: DCJMSDestination)

    • JMS-Message-Ablauf: (technischer Name: DCJMSExpiration)

    • JMS-Message-ID: (technischer Name: DCJMSMessageID)

    • JMS-Message-Priorität: (technischer Name: DCJMSPriority)

    • Kennzeichen für wiederholte JMS-Message-Auslieferung: (technischer Name: DCJMSRedelivered)

    • ReplyTo-Destination der JMS-Message: (technischer Name: DCJMSReplyTo)

    • Zeitstempel der JMS-Message: (technischer Name: DCJMSTimestamp)

    • JMS-Message-Typ: (technischer Name: DCJMSType)

    • Verwendeter JMS-Message-Selector: (technischer Name: DCJMSMessageSelector)

    • Verwendete JMS-Message-Queue: (technischer Name: DCJMSMessageQueue)

    • JMS-Benutzer: (technischer Name: DCJMSUser)

    • Möchten Sie zusätzliche JMS-Message-Attribute setzen, wählen Sie Zusätzliche JMS-Message-Eigenschaften (maximal 100) angeben.

    Geben Sie in der Tabelle die Namen der JMS-Message-Eigenschaften an, deren Werte in den Message-Header der PI-Message übernommen werden sollen.

    Die technischen Namen der zusätzlichen Attribute lauten DCJMSMessageProperty0, DCJMSMessageProperty1, ..., DCJMSMessageProperty9.

    Sie können in die Tabelle mehr als zehn Eigenschaften eingeben. Es können jedoch nur die ersten zehn für das Routing verwendet werden.

    Der Attributnamensraum für den Adapter ist http://sap.com/xi/XI/System/JMS.

Adapterstatus definieren

  1. Setzen Sie den Adapter auf Aktiv, um den Message-Austausch zu ermöglichen.

Weitere Parameter definieren

Geben Sie die zusätzlichen Parameter Namen und Werte in der Tabelle an.

Beispiel

Wenn Sie z.B. eine Verbindung zu einem Drittanbieter-JMS-Provider herstellen, können Sie die Client-ID und den entsprechenden Wert für jeden Kanal eingeben. Diese sind jedoch spezifisch für den Drittanbieter-Provider.

Weitere Informationen finden Sie in der Dokumentation zum Drittanbieter-Provider.