Show TOC

JMS-Empfänger-Adapter konfigurierenLocate this document in the navigation structure

Verwendung

Sie konfigurieren den JMS-Empfänger-Adapter, um PI-Messages vom Integration Server oder vom PCK in JMS-Nachrichten zu verwandeln.

Vorgehensweise
  1. Wählen Sie unter Transportprotokollden JMS-Provider:
    • SonicMQ JMS-Provider
    • WebSphereMQ (MQ Series) JMS-Provider
    • JNDI Lookup des JMS-Provider
    • Administrierbare Objekte des JMS-Provider aus Datei lesen
    • Generischer JMS-Provider
  2. Wählen Sie als Message-ProtokollJMS 1.x.
  3. Wählen Sie die Adapter Engine auf dem Integration Server oder eine dezentral installierte Adapter Engine aus.

    Diese Auswahl ist im PCK nicht möglich.

Verbindungsparameter definieren

  1. Wählen Sie die Registerkarte Ziel aus.
    Hinweis

    Beim Generischen JMS-Provider werden die Verbindungseinstellungen in der Tabelle mit den zusätzlichen Parametern angegeben.

  2. Um eine Verbindung mit einem JMS-Topic herzustellen, markieren Sie das Ankreuzfeld Topic-Unterstützung aktivieren.

Für den JMS-Provider ist Queue-Unterstützung voreingestellt.

  1. In Abhängigkeit vom gewählten Transport-Protokoll geben Sie die Verbindungsparameter für den JMS-Provider ein.

Weitere Verbindungsparameter können Sie in der Tabelle Zusätzliche Parameter auf der Registerkarte Erweitert angeben. Je nachdem, welchen Drittanbieter-JMS-Provider Sie wählen, müssen Sie eventuell eine eindeutige Client-ID (pro Kanal) in der Tabelle der zusätzlichen Parameter festlegen.

Die Funktion zum Setzen der Client-ID ist provider-spezifisch.

Verbindung nach Bedarf definieren

  1. Aus der Dropdown-Listbox Transportprotokoll wählen Sie WebSphereMQ (MQSeries) JMS-Provider aus.
  2. Markieren Sie das Ankreuzfeld Verbindung nach Bedarf anlegen.
  3. Geben Sie für Verbindung aufrecht erhalten (Sek.) einen Wert ein, der die Dauer der Verbindung festlegt.
    Hinweis
    • Dieser Wert bestimmt, wie lange die Verbindung nach Zustellung einer Message geöffnet bleiben muss.
      • Wenn der Wert Null ist, öffnet der JMS-Empfänger-Adapter die Verbindung und schließt sie sofort nach der Zustellung der Message.
      • Wenn der Wert größer Null ist, öffnet der JMS-Empfänger-Adapter die Verbindung für die erste eingehende Message, stellt die Message zu und schließt die Verbindung erst wieder nach Ablauf der festgelegten Dauer. Gehen während der aktiven Verbindungsdauer weitere Messages ein, stellt der Adapter diese zu und setzt dabei die Dauer bei jeder Zustellung wieder zurück. Die Verbindung wird erst geschlossen, wenn die festgelegte Dauer für die letzte zugestellte Message abgelaufen ist.
    • Bei einem Provider-Ausfall kann sich der JMS-Empfänger-Adapter nicht automatisch neu mit dem JMS-Provider verbinden.

Initialkontext-Eigenschaften

  1. Geben Sie Name und Wert der Initialkontext-Eigenschaften in der Tabelle ein. Vor dem Release SAP NetWeaver PI 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

    Wert

    propertyName

    propertyValue

    Sowohl propertyName als auch propertyValue sind Strings.

    Hinweis

    Diese Tabelle ist nur verfügbar, wenn Sie für das Transportprotokoll JNDI-Lookup des JMS-Providerwä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.

    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. Wählen Sie den Zustellungsmodus des Message-Erzeugers:
    • JMS-Nachrichten im JMS-Provider speichern
    • JMS-Nachrichten im JMS-Provider nicht speichern
  4. Geben Sie unter JMS-ReplyTo-Queue-Name den Namen der Queue an, an die Antworten geschickt werden sollen.
  5. Geben Sie unter Gültigkeitsdauer der JMS-Message (mSek.) die Gültigkeitsdauer der JMS-Message in Millisekunden an.
  6. Geben Sie die Priorität der JMS-Message an (optional).
  7. Geben Sie den Benutzer und das Kennwort mit Bestätigung für den Zugriff auf JMS-Queue/-Topic ein.

Korrelationseinstellungen definieren

  1. Setzen Sie die JMS-Korrelations-ID auf:
    • PI-Message-ID (MessageID) (Standardwert)
    • PI-Referenz-ID (RefToMessageID)
    • PI-Konversations-ID (ConversationID)
    • Kein Wert
  2. Wenn Sie die JMS-Korrelations-ID des Requests sichern wollen, wählen Sie JMS-Korrelations-ID der Anfrage sichern.
  3. Geben Sie an, worauf die JMS-Eigenschaft gesetzt werden soll.
  4. Wählen Sie den Wert der JMS-Eigenschaft:
    • PI-Message-ID (MessageID) (Standardwert)
    • PI-Referenz-ID (RefToMessageID)
    • PI-Konversations-ID (ConversationID)
    • Kein Wert

PI-Einstellungen festlegen

  1. Wählen Sie für Mapping der Message:
    • Wenn nur die Payload der PI-Message in die JMS-Payload eingestellt werden soll, dann wählen Sie Message-Payload = JMS-Payload. (Standardeinstellung).
    • Wenn die gesamte PI-Message in der JMS-Payload enthalten sein soll, wählen Sie Gesamte Message = JMS-Payload.
  2. Der Adapter ist in der Lage festzustellen, ob ein Abbruch zwischen dem JMS-Commit und dem Commit auf der Datenbank des Adapter-Framework eingetreten ist. Der Adapter erkennt den dadurch erzeugten doppelten Datensatz.

    Wählen Sie Behandlung von ausstehenden PI-Messages:

    • Ausnahme auslösen (erneuter Message-Versuch später möglich) (Standard).
    • Warnung ignorieren und Message an JMS senden (Dubletten möglich)

      Ein doppelter Datensatz wird dann erzeugt, wenn das JMS-Commit durchgeführt wird, nicht jedoch das Commit auf der Datenbank des Adapter-Framework. Wenn Sie diese Option wählen, dann müssen Sie im JMS-Umfeld sicherstellen, dass diese Message noch nicht empfangen wurde.

    • Message als übermittelt markieren (Verlust der Message möglich)

      Ein Verlust der Message tritt dann ein, wenn auch das JMS-Commit noch nicht durchgeführt wurde. Wenn Sie diese Option wählen, dann müssen Sie im JMS-Umfeld sicherstellen, dass diese Message schon empfangen wurde.

      Hinweis

      Ein Beispiel für die Verwendung des Parameters finden Sie unten unter Beispiel.

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

    Für die Prüfung doppelter Messages 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.

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

  4. Wenn der JMS-Empfänger eine Anwendung ist, dann sollte der JMS-Adapter ein Delivery-Acknowledgement zurückschicken. Wählen Sie PI Delivery Acknowledgment (Adapter ist Endpunkt) senden.

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-1ein, wird nicht versucht die Verbindung erneut aufzubauen.

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

  3. Ruft der JMS-Provider bei Verbindungsfehlern nicht den vom JMS-Adapter registrierten ExceptionListener auf, können Sie mit der Einstellung des Parameters Neue Verbindung, wenn Ausnahmetext beginnt mit die Wiederaufnahme der Verbindung erzwingen.

    Wird beim Verschicken einer Message eine JMS-Ausnahme ausgelöst, wird der hier angegebene Freitext mit dem angegebenen String verglichen. Sobald das unter Warten bis zur neuen Verbindung (ms) angegebene Zeitintervall überschritten ist, wird ein Wiederaufbau der Verbindung vorgenommen.

    Hinweis

    Setzen Sie diesen Parameter nur, wenn Ihr JMS-Provider die Registrierung eines ExceptionListener nicht unterstützt.

Adapterspezifische Message-Eigenschaften definieren

  1. Wählen Sie die Registerkarte Erweitert.
  2. Um adapterspezifische Eigenschaften im Message-Header der PI-Message auszuwerten, wählen Sie Adapterspezifische Message-Eigenschaften verwenden.
  3. Wenn Sie möchten, dass fehlende Message-Attribute eine Fehlermeldung auslösen, wählen Sie Fehlerausgabe beim Fehlen adapterspezifischer Message-Attribute.

    Ist das Kennzeichen gesetzt und in der Message fehlt der Header für adapterspezifische Message-Attribute oder eines der gesetzten Attribute, dann führt dies zu einer Zustellungsausnahme im Audit-Log der Message.

    Setzen Sie das Kennzeichen nicht, und es fehlen Message-Attribute, greift der Adapter auf Informationen aus der Adapterkonfiguration zu.

  4. Um die folgenden Attribute im PI-Message-Header auszuwerten, setzen Sie das jeweilige Kennzeichen:
    • Korrelations-ID der JMS-Message:(technischer Name: DCJMSCorrelationID)
    • JMS-Message-Ablauf: (technischer Name: DCJMSExpiration)
    • JMS-Message-Priorität: (technischer Name: DCJMSPriority)
    • ReplyTo-Destination der JMS-Message: (technischer Name: DCJMSReplyTo)
    • Zeitstempel der JMS-Message: (technischer Name: DCJMSTimestamp)
  5. Möchten Sie zusätzliche JMS-Message-Attribute setzen, wählen Sie Zusätzliche JMS-Message-Eigenschaften (Maximum 10) spezifizieren.
    • Geben Sie in der Tabelle Namen und JavaType der JMS-Message-Eigenschaften an, deren Werte in den Message-Header der PI-Message übernommen werden sollen.

      Unter Java Type definieren Sie den JMS-Java-Message-Typ für das Attribut in der erzeugten JMS-Message. Sie können die folgenden Daten eingeben:

      • boolean
      • byte
      • short
      • int
      • long
      • float
      • double
      • string

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

    Sie können in die Tabelle mehr als zehn Eigenschaften eingeben. Es werden jedoch nur die ersten zehn berücksichtigt.

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

Adapterstatus definieren

  1. Setzen Sie den Adapter auf Aktiv , um ihn für den Message-Austausch einzusetzen.

Weitere Parameter definieren

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

    Wenn Sie sich zum Beispiel mit einem Drittanbieter-JMS-Provider verbinden, können Sie die Client-ID und den entsprechenden Wert für jeden Kanal angeben. Diese sind jedoch spezifisch für den Drittanbieter-Provider.

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

Beispiel

Ein typischer Vorgang zur Behandlung von hängenden Messages ist:

  1. Der JMS-Empfänger-Adapter hat für den Parameter die Voreinstellung Ausnahme auslösen.
  2. Sie sehen im Message- und/oder Adapter-Monitor folgende Ausnahme:

    Der Kanal ist so konfiguriert, dass er einen wiederherstellbaren vorläufigen Fehler für diese Warnung auslöst (Standard). Entscheiden Sie, ob Sie diese Message umgehen möchten. Setzen Sie in diesem Fall den Kanalparameter Pending Handling auf 'Bypass' und starten Sie die Message erneut.

  3. Stellen Sie sicher, dass keine weiteren Messages durch diesen Kommunikationskanal geschickt werden, indem Sie den entsprechenden Senderkanal deaktivieren.
  4. Prüfen Sie, ob die Message(s) im JMS-Umfeld angekommen sind.
    1. Falls die Message im JMS-Umfeld angekommen ist, wählen Sie die Option Message als übermittelt markieren (Verlust der Message möglich).
    2. Falls die Message nicht im JMS-Umfeld angekommen ist, wählen Sie die Option Warnung ignorieren und Message an JMS senden (Dubletten möglich).
    3. Wählen Sie Wiederholen im Message-Monitoring.

      Haben Sie Messages vorliegen, von denen einige im JMS-Umfeld angekommen sind und andere nicht, dann müssen Sie den Vorgang zwei Mal durchführen und jeweils die passenden Messages wiederholt senden.

  5. Stellen Sie nun den Parameter im Kommunikationskanal wieder auf Ausnahme auslösenum.
  6. Aktivieren Sie den entsprechenden Sender-Kommunikationskanal.