Antwortweg JMS


images/download/thumbnails/55940308/arrow_up.png Einführung: Eine Beschreibung dieser Phase finden Sie im Abschnitt Phase 6 (Einführung).


images/download/thumbnails/55940308/image2020-3-16_18-43-17.png

images/download/attachments/55940308/626.png


Hinweis: Siehe auch Abschnitt Dateinamen, Dateimuster, Pfade, System-Konstanten und Variablen.

(1) Auswahl eines JMS-Aliases.

(2) Auswahl des Typs (Publish, Routing, Topic oder RPC). Der Typ RPC ist synchron, die anderen asynchron. Hinweis: Wenn Sie Style RPC verwenden, dann müssen Sie auch ein Folgeprofil angeben, siehe (4). Der Grund ist, dass ein RPC-Aufruf eine Response erzeugt und diese wird dann vom Folgeprofil entgegengenommen.

(3) Name der Queue, an die gesendet wird, bzw. Name des Topics. Wichtiger Hinweis: In neueren ActiveMQ-Versionen muss das Präfix dynamicQueues/ (bzw. dynamicTopics/ ) dem Queue-Namen vorangestellt werden, also z. B. dynamicQueues/JMSSendQueue . Bitte passen Sie diese Namen in der Konfigurationsdatei ./etc/message.xml an. Zum Verständnis können Sie sich hier das Thema "dynamic contexts" in ActiveMQ ansehen.

images/download/attachments/55940308/628.png


(4) Haben Sie in (2) den Typ RPC ausgewählt, muss hier ein Folge-Profil angegeben werden. Das Profil muss einen Eingangsagenten des Typs Message haben und aktiv sein.

(5) Gibt die Zeit in Sekunden an, die eine Message benötigen darf, um gesendet und verarbeitet zu werden.

  • Bei synchroner Message wartet das Profil so lange, bis das Zielprofil seine Verarbeitung (erfolgreich oder mit Fehler) beendet hat. Wird dabei die hier eingestellte Zeit überschritten, bricht dieser Antwortweg mit Fehler ab, obwohl vielleicht das Zielprofil später erfolgreich endet.

  • Bei asynchroner bzw. persistenter Message wartet das Profil nicht auf das Zielprofil, sondern nach Übergabe der Daten endet der Antwortweg erfolgreich. Die Message selbst hat hier aber eine endliche Lebenszeit. Konnte Sie nach dieser Zeit nicht vom Zielprofil angenommen werden, wird sie gelöscht. Die hier eingestellte Zeit ist die maximale Lebenszeit der Message. Hinweis: Die minimale Lebenszeit beträgt 12 Stunden (unabhängig vom eingestellten Wert).

(6) Eine Message kann drei unterschiedliche Arten haben.

  • Synchron. Das Profil sendet die Message und macht erst dann weiter, wenn die Antwort erfolgt ist.

  • Asynchron. Das Profil sendet die Message und macht sofort weiter. Die Antwort ist unerheblich für die weitere Profilausführung.

  • Persistent. Arbeitet analog zu Asynchron. Als Erweiterung wird aber bei fehlender Gegenstelle die Message abgespeichert und versucht alle 50 ms die Message zu senden. Konnte in der Zeit (5) kein Erfolg erreicht werden, geht die Message verloren.

JMS Message Properties


Um eine Message Property zu setzen, muss man im Profil eine System-Variable der Form AMQP_<Name der Message Property> angelegt werden (Groß- und Kleinschreibung in der Property wird beachtet). Beispiel: Mit der Variable AMQP_Year können sie die Message Property Year setzen.

JMS Message Headers


Sie können folgende System-Variablen nutzen, um JMS Message Headers zu setzen:


JMS-Message-Selektoren


Im Eingangsagenten AMQP/JMS ist beschrieben, wie man Nachrichten mit JMS-Message-Selektoren filtern kann. Nehmen wir nun an, Sie möchten mit einem Selektor Year=2019 arbeiten. Legen Sie hierzu im Profil eine System-Variable AMQP_Year vom Typ Integer und dem Wert 2019 an. Wenn Sie nun hier im Antwortweg eine JMS-Nachricht versenden, enthält diese die Message Custom Property Year mit dem Wert 2019 und wird mit Ihrem Message-Selektor gefunden werden.

Message Type


Per Default übergibt der Antwortweg AMQP/JMS Daten an den empfangenden Server als Byte-Nachricht. Um das zu ändern, da manche Server damit nicht zurecht kommen, kann im Profil die System-Variable AMQP_JMS_TEXTMESSAGE mit dem Wert true angelegt werden, dann werden die Daten als Text-Nachricht übergeben. Zudem muss im Antwortweg die Kodierung auf UTF-8 gesetzt sein.

Eingangsagent


Siehe Abschnitt JMS (Eingangsagent).