Dieser Artikel beschreibt die Einstellungen des Eingangsagenten JMS. Der Eingangsagent empfängt Nachrichten von einem JMS-Broker und startet damit ein Profil.
WICHTIG: Der Eingangsagent ist nur auswählbar, wenn mindestens eine JMS-Verbindung eingerichtet ist.
Einstellungen


Nur auf IS starten: Diese Option gilt nur für das Modul Load Balancing. Sie startet das Profil auf einem bestimmten Node.
Verbindungs-Alias: Wählen Sie hier einen JMS-Alias aus.
Nachrichten-Art: Wählen Sie die Nachrichtenart aus. Zur Auswahl stehen Subscriber, Topic, Routing und RPC. Die Nachrichtenart RPC arbeitet synchron. Die übrigen Nachrichtenarten arbeiten asynchron.
HINWEIS: Für die Nachrichtenart RPC benötigen Sie zusätzlich einen Antwortweg vom Typ Eigene Klasse. Verwenden Sie dort die Klasse PassBackDataResponse. Bei einem RPC-Call erwartet der aufrufende Client eine Response. Diese Klasse erzeugt die Response und gibt sie an den Eingangsagenten weiter. Der Eingangsagent liefert die Response an den Client zurück. Weitere Informationen finden Sie unter Dritte Möglichkeit: Eigene Klasse im Antwortweg.
Wenn Sie die Nachrichtenart Topic verwenden, erscheint zusätzlich die Checkbox Persistent ('Durable'). Setzen Sie diese Checkbox, wenn die unter Queue/Topic angegebene Queue „durable“ ist. Eine solche Queue überlebt einen Neustart des Brokers. Bei ActiveMQ müssen Sie zusätzlich die JMS Client ID in der Verbindung setzen. Fehlt die JMS Client ID, entsteht ein Fehler. Diesen Fehler erkennen Sie nur im Server-Logging unter Verwaltung. Die Meldung steht in integration/error.logs und hat folgende Form:
...javax.jms.JMSException: You cannot create a durable subscriber without specifying a unique clientID on a Connection...Queue/Topic: Tragen Sie den Namen der Queue ein, auf die Lobster hört. Bei der Nachrichtenart Topic tragen Sie stattdessen den Namen des Topics ein. Siehe Nachrichten-Art.
Bei einem Azure Service Bus und der Nachrichtenart Topic gilt eine eigene Syntax: <Topicname>/subscriptions/<Subscriptionname>. Ein Beispiel ist mytopic/subscriptions/mysubscription.
JMS Message Selector: Mit einem JMS Message Selector filtern Sie die empfangenen Nachrichten. Als Nachrichtenkonsument geben Sie hier an, welche Nachrichten Sie erhalten möchten. Beispiele finden Sie im Abschnitt JMS-Message-Selektoren. Weitere Informationen liefert die Oracle-Dokumentation zu JMS Message Selectors. Für die Nachrichtenart Topic gilt diese Einstellung nicht.
Message erst bei erfolgreichem Job am Ende bestätigen: Hier stellen Sie das Consumer Delivery Acknowledgement ein. Damit legen Sie fest, wann Lobster den Empfang einer Nachricht auf dem Message-Bus bestätigt.
Checkbox nicht gesetzt: Es gilt das Standardverhalten. Lobster bestätigt den Empfang, sobald die Backup-Datei des Profil-Jobs angelegt ist. Ausgenommen ist die Nachrichtenart RPC.
Checkbox gesetzt: Lobster bestätigt eine empfangene Nachricht erst nach einem erfolgreichen Job-Durchlauf. Eine Verarbeitung im Hintergrund ist dann nicht möglich. Siehe Parallelverarbeitung und Queueing von Jobs.
Wenn Sie in den Antwortwegen Antwortwege entkoppelt ausführen setzen, bestätigt Lobster den Empfang ab Phase 6 immer.
HINWEIS: Ohne Bestätigung greift die Einstellung des JMS-Servers. Der Server stellt die Nachricht erneut zu oder lehnt sie ab. Abgelehnte Nachrichten leitet der Server auf die Dead Letter Queue um. In dieser Konstellation können Sie am Ende der Verarbeitung im Profil eine Transaktion committen, ähnlich wie bei einer Datenbank. Voraussetzung ist ein fehlerfreier Durchlauf. Für Fehlerfälle richten Sie eigene Profile ein. Diese Profile arbeiten die fehlerhaften Nachrichten aus der Dead Letter Queue ab.
Virtueller Dateiname ist: Tragen Sie hier den Namen einer Message Property ein. Lobster verwendet den Wert dieser Property als Namen der empfangenen Datei. Den Namen sehen Sie in der Log-Übersicht im Control Center. Ohne Eintrag verwendet Lobster den Standardwert amqp.data. Denselben Standardwert verwendet Lobster, wenn die Property fehlt oder keinen Wert hat.
Ein Beispiel: Die empfangene Nachricht hat die Message Property myfilename mit dem Wert test.txt. Tragen Sie im Feld den Wert myfilename ein. Die empfangene Datei erhält dann den Namen test.txt. Den Dateinamen selbst können Sie in diesem Feld nicht angeben.
JMS Message Properties
Message Properties einer Nachricht fragen Sie über System-Variablen ab. Sie definieren die System-Variable im Profil. Ein Beispiel: Die Message Property NameX steht im Profil als System-Variable MSG_CALL_NAMEX zur Verfügung. Der Variablenname besteht aus dem Präfix MSG_CALL_ und dem Parameter-Namen in Großbuchstaben. Weitere Beispiele sind MSG_CALL_GROUPID, MSG_CALL_SUBJECT, MSG_CALL_MESSAGEID und MSG_CALL_CORRELATIONID.
JMS-Message-Selektoren
JMS-Message-Selektoren nutzen eine eigene Abfragesprache. Ihr Aufbau ähnelt einer SQL-WHERE-Klausel. Ein Selektor filtert auf JMS Message Headers und JMS Message Properties. Auf den Nachrichteninhalt lässt er sich nicht anwenden. Die folgende Tabelle zeigt die Elemente der Abfragesprache mit Beispielen.
Element | Beschreibung | Beispiel-Selektor |
|---|---|---|
Header-Felder | Alle Header außer |
|
Properties | Message Properties. Es gelten dieselben Regeln wie bei Java-Bezeichnern. |
|
String | Strings stehen in einfachen Anführungszeichen. Zum Escapen verdoppeln Sie das einfache Anführungszeichen. |
|
Zahl | Zahlen in Java-Syntax, also |
|
Boolean | Die Werte |
|
| Klammern. |
|
| Logische Operatoren. |
|
| Vergleichsoperatoren. |
|
| String-Vergleich mit Wildcards. |
|
| Findet einen Wert in einer Menge von Strings. Für Mengen von Zahlen funktioniert der Operator nicht. |
|
| Prüft, ob eine Zahl in einem Bereich liegt. Beide Grenzwerte sind eingeschlossen. |
|
| Prüft, ob ein Wert |
|
| Arithmetische Operatoren. |
|
HINWEIS: Der Artikel Antwortweg JMS beschreibt, wie Sie Nachrichten an Selektoren schicken. Dort erfahren Sie, wie ein bestimmter Selektor diese Nachrichten abgreift.
Profile suspendieren
Sie können Profile mit diesem Eingangsagenten suspendieren. Während der Suspendierung nimmt Lobster keine Nachrichten an. Die Nachrichten verbleiben auf dem Broker. Nach dem Aufheben der Suspendierung dauert die Verarbeitung dieser Nachrichten bis zu 60 Sekunden.