JMS
Der Adapter tauscht Nachrichten über die Java Message Service-Warteschlange eines nachrichtenorientierten Middleware-Produkts aus, das als JMS-Provider dient. Der Adapter unterstützt das Senden und Empfangen von Nachrichten von und zur JMS-Warteschlange und kann Nachrichten in JMS-Topics publizieren und JMS-Topics abonnieren.
Eigenschaften (Properties)
| Delete | (keine Funktion) |
| File name | (keine Funktion) |
| I/O Mode | (keine Funktion) |
| Operation | Bestimmt, welche Operation mit den Nachrichten der JMS-Warteschlange durchgeführt wird. Mögliche Werte:
|
Parameter
| object_name | Name der JMS-Warteschlange oder des JMS-Topics, unter dem es im JNDI-Provider (Java Naming and Directory Interface) registriert ist Mögliche Werte: Beliebige Zeichenkette (z. B. |
| connection_factory | Name der JMS Connection Factory , unter der die Nachrichtenwarteschlange im JNDI (Java Naming and Directory Interface) registriert ist Mögliche Werte: Beliebige gültige Zeichenkette (z. B. |
| JNDIProperties | Zusätzliche Eigenschaften des JNDI-Providers Mögliche Werte: Beliebige Zeichenkette mit Eigenschaften, bei mehreren Eigenschaften durch Semikolon getrennt (z. B. java.naming.factory.initial=org.jnp.inter faces.Naming ContextFactory;java.naming.provi der.url=localhost:1099) |
| approach | Verwendeter Nachrichtenkanaltyp Mögliche Werte:
|
| timeout | Zeitbeschränkung für den Verbindungsaufbau in Millisekunden Mögliche Werte:
|
| filter | Filtert beim Empfangen von Nachrichten über JMS-Nachrichtenselektoren Mögliche Werte: Beliebige Zeichenkette mit Eigenschaften nach dem Muster |
| msg_property | Header-Attribute der JMS-Nachricht beim Senden von Nachrichten Mögliche Werte: Beliebige Zeichenkette mit Eigenschaften nach dem Muster |
| headers_from_XML | Header-Informationen des Input-Dokuments verwenden Mögliche Werte:
|
| transacted | Diesen Prozess-Schritt in einer lokalen Transaktion ausführen Mögliche Werte:
|
| ack_mode | Acknowledgement-Modus (dieser regelt den Umgang mit Empfangsbestätigungen) Mögliche Werte:
|
| msg_priority | Nachrichten-Priorität (9 hat die höchste Priorität) Mögliche Werte:
|
| msg_expiration_time | Gültigkeitsdauer von Nachrichten (Lebensdauer) in Millisekunden; nach dem Ablauf der Gültigkeit ist die Nachricht obsolet und wird automatisch aus der Warteschlange entfernt Mögliche Werte:
|
| msg_type | JMS-Nachrichtentyp Mögliche Werte:
|
| subscription_name | Name des Abonnements für dauerhafte Nachrichten-Abonnements (wenn Parameter approach auf topic gesetzt wurde) Mögliche Werte: Beliebige Zeichenkette |
| durable_subscription | Dauer des JMS-Abonnements Mögliche Werte:
|
| ClientID | Name des JMS-Clients Mögliche Werte: Beliebige Zeichenkette |
| toXML | JMS-Nachricht inklusive Header-Informationen als XML-Dokument ausgeben (wenn Eigenschaft Operation auf Receive gesetzt wurde, dann wird der Zeichensatz unverändert übernommen; als MIME-Type wird dann Text/XML verwendet). Wenn Sie den Parameter toXML nicht setzen, dann werden Byte-,Stream- oder Object-Nachrichten als MIME-Typ Application/Octet-stream deklariert; Text-Nachrichten werden hingegen UTF-8-kodiert und mit MIME-Typ Text/Plain deklariert. Mögliche Werte:
|
| base64 | JMS-Nachricht Base64-kodiert ausgeben (wenn Parameter toXML gesetzt ist) Mögliche Werte:
|
| JMSReplyTo | Ziel-Warteschlange der Antwort-Nachricht |
| JMSCorrelationID | ID der Nachricht, auf die sich die Antwort bezieht (verschiedene Teile einer Nachricht besitzen dieselbe JMSCorrelationID) |
| login | Benutzername für den JMS |
| password | Passwort für den JMS |
Die im Applikations-Server standardmäßig verfügbaren JMS-Warteschlangen sind wegen des verwendeten Datenbanksystems (HSQLDB, Derby) nicht für den Produktiveinsatz geeignet. Trotz transaktionaler Verarbeitung können mit diesen Daten verloren gehen. Verwenden Sie ausschließlich produktiv einsetzbare Datenbanksysteme (Oracle, MSSQL etc.) zur Nachrichten-Persistierung von JMS-Warteschlangen; siehe http://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/4/html/apbs04.html.
Statuswerte
1 | Die Operation wurde erfolgreich ausgeführt. |
0 | Die Operation wurde erfolgreich ausgeführt, jedoch ohne Ergebnis. |
-1 | Die Operation ist aufgrund eines technischen Fehlers fehlgeschlagen. |
Input: msg:type map
<?xml version="1.0" encoding="UTF-8"?>
<RootElement>
<Entry name="firstKey">Blub</Entry>
<Entry name="b" type="byte">1</Entry>
<Entry name="s" type="short">2</Entry>
<Entry name="i" type="integer">3</Entry>
<Entry name="l" type="long">4</Entry>
<Entry name="f" type="float">5.5</Entry>
<Entry name="d" type="double">6.6</Entry>
<Entry name="bool" type="boolean">true</Entry>
<Entry name="c" type="character">z</Entry>
<Entry name="blob" type="bytearray">aaaa</Entry>
</RootElement>
Input: msg:type map und headers_from_XML
<?xml version="1.0" encoding="UTF-8"?>
<messages>
<message type="map">
<headers>
<header>
<name>myFirstHeader</name>
<value>the first</value>
</header>
<header>
<name>mySecondHeader</name>
<value>the second</value>
</header>
</headers>
<body>
<Entry name="firstKey">Blub</Entry>
<Entry type="byte" name="b">1</Entry>
<Entry type="short" name="s">2</Entry>
<Entry type="integer" name="i">3</Entry>
<Entry type="long" name="l">4</Entry>
<Entry type="float" name="f">5.5</Entry>
<Entry type="double" name="d">6.6</Entry>
<Entry type="boolean" name="bool">true</Entry>
<Entry type="character" name="c">z</Entry>
<Entry type="bytearray" name="blob">aaaa</Entry>
</body>
</message>
</messages>
Output: msg:type map
<?xml version="1.0" encoding="UTF-8"?>
<MapMessage>
<Entry name="b" type="Byte">1</Entry>
<Entry name="blob" encoding="base64" type="ByteArray">aaaa</Entry>
<Entry name="s" type="Short">2</Entry>
<Entry name="c" type="Character">z</Entry>
<Entry name="bool" type="Boolean">true</Entry>
<Entry name="d" type="Double">6.6</Entry>
<Entry name="f" type="Float">5.5</Entry>
<Entry name="firstKey" type="String">Blub</Entry>
<Entry name="i" type="Integer">3</Entry>
<Entry name="l" type="Long">4</Entry>
</MapMessage>
Output: msg:type map und headers_to_XML
<?xml version="1.0" encoding="UTF-8"?>
<document>
<headers>
<header>
<name>mySecondHeader</name>
<value>the second</value>
</header>
<header>
<name>JMSMessageID</name>
<value>ID:4bedf9a6-05a1-11e7-bf59-eba4f4962570</value>
</header>
<header>
<name>JMSXDeliveryCount</name>
<value>1</value>
</header>
<header>
<name>myFirstHeader</name>
<value>the first</value>
</header>
</headers>
<body>
<MapMessage>
<Entry name="b" type="Byte">1</Entry>
<Entry name="blob" encoding="base64" type="ByteArray">aaaa</Entry>
<Entry name="s" type="Short">2</Entry>
<Entry name="c" type="Character">z</Entry>
<Entry name="bool" type="Boolean">true</Entry>
<Entry name="d" type="Double">6.6</Entry>
<Entry name="f" type="Float">5.5</Entry>
<Entry name="firstKey" type="String">Blub</Entry>
<Entry name="i" type="Integer">3</Entry>
<Entry name="l" type="Long">4</Entry>
</MapMessage>
</body>
</document>