
Sie konfigurieren den JMS-Sender-Adapter, um JMS-Messages an die Integration Engine oder das PCK zu versenden.
Für den definierten Kommunikationskanal kann es nur eine Sendervereinbarung geben.
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
Das Message-Protokoll ist JMS 1.x.
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
Wählen Sie die Registerkarte Quelle.
Wenn Sie eine Verbindung zu einem JMS-Topic herstellen möchten, markieren Sie das Ankreuzfeld Topic-Unterstützung aktivieren.
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
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.
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
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 |
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
Wählen Sie die Registerkarte Verarbeitung.
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.
Geben Sie den Benutzer und das Kennwort mit Bestätigung für den Zugriff auf JMS-Queue/-Topic ein.
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
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.
Geben Sie einen Schwellenwert für doppelte Messages ein, ab dem ein Alert für doppelte Messages ausgelöst wird.
Wenn Sie als Schwellenwert für doppelte Messages den Wert n eingeben, wird für die doppelte Message n+1 ein Alert ausgelöst.
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.
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.
Geben Sie das Message-Poll-Intervall (mSek.) als Zeitraum zwischen den Aufrufen ein, über die Messages von den JMS-Provider-Destinationen empfangen werden.
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.
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
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.
In der Dropdown-Bxo Quality-of-Service wählen Sie den Typ des Quality-of-Service (QoS) und führen folgende Teilschritte aus:
In das Feld Queue-ID geben Sie die Queue-ID ein.
Diese Option ist nur für den QoS Exactly-Once-in-Order verfügbar.
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.
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.
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
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.
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
Wählen Sie die Registerkarte Erweitert.
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
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.
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.