JMS Java Message Queue
Eigenschaften:
- Asynchrone Zustellung: Der Empfäger kann später empfangen, es muss nicht quasi sofort sein [JMS Tut. 42.1.1]
- Zuverlässig (reliable): Die Nachricht wird genau einmal ausgeliefert [JMS Tut. 42.1.1]
- Nachrichten werden gepuffert (← Asynchron und zuverlässig)
- nicht Brokerfree (hat einen Broker zumindest ActiveMQ - der wird gebraucht, um die asynchrone Zustellung zu garantieren)
JMS unterstützt zwei Modelle:
- Point to Point (PTP)
- Nachricht wird an Message Queue gesendet, Clients holen nachricht aus Queue
- publish subscribe
-
- Topic in einer Content Hierarchie wird gesendet oder empfangen
- Sender/Publisher und Empfänger sind annonym (kennen sich nicht)
- System ist für die Verteilung verantwortlich.
JMS-Client kann auch Java Transaction API (JTA) nutzen (javax.transaction)
Es gibt verschiedene konkrete JMS Service Provider.(Kap.2.3)
Wichtige Begriffe
- Connection [JEE Tut.42.3.2]
- Verbindung zum JMS-Provider. Intern kann es z.B. ein TCP/IP-Socket zwischen einem Client und einem Provider Dienstdaemon sein
- Session [JEE Tut.42.3.3]
- ein Kontext für einen Thread zum produzieren und konsumieren.
hier werden die Message-Listeners ausgeführt
Sessions haben einem Transkationellen Kontext für eine Gruppe von
zu sendenen und zu empfangenen Nachrichten.
- JMSContext[JEE Tut.42.3.4]
- Kombination zwischen Connection und Session in einem Objekt
Links
- eWP
- JMS-Konzepte aus JavaEE-Tutorial
Implementierungen
ActiveMQ