# Wie erhällt eine MessageDrivenBean Nachrichten aus einer Queue ? Wer Pollt da gegen die DB?



## Manuel Jan (19. Feb 2010)

Hallo,

ich habe eine Frage zu MessageDrivenBeans, insbesondere zum Polling auf die Datenbank:

Eine MDB kann, wenn sie den MessageListener implementiert, JMS-Nachrichten aus einer Datenbank-Queue 
empfangen. Ich würde gerne wissen, wo der Trigger an dieser Stelle sitzt ? 
Woher weiss das System (EJB-Container ?) , dass eine neue Nachricht in die Queue eingestellt wurde ? Wer pollt da 
gegen die Queue, um eine neue MDB Instanz zu erstellen ? Wird da ggf. Last auf die Datenbank gesetzt, wenn 
z.B. viele MDBs vorliegen und ständig gepollt wird ?



Grüsse,
Manuel Jan


----------



## FArt (22. Feb 2010)

Der Container pollt natürlich. Über die Konfiguration des MDB weiß er auch, worauf er schauen muss (welche Queue, welcher Filter, Abarbeitung der Message transaktional ja/nein, usw.
Wie er das macht, braucht dich in der Regel nicht zu interessieren und ist abhängig davon, welche Implementierung du verwendest und welcher PersistentStore (wenn persistent) verwendet wird.


----------



## Manuel Jan (22. Feb 2010)

Angenommen ich habe einen Cluster mit 10 Servers, jeder dieser Server instantiiert angenommen MDBs 16 MDBs. Ja und jetzt habe ich es verstanden..wir hätten an dieser Stelle 10 EJB-Container und diese pollen auf die Datenbank. 
Sobald eine neue MDB durch den Container instantiiert wird, erfolgt eine neue Dantenbanktransaktion.

Mich würde noch das Polling-Interval auf die Queue interessieren, aber wahrscheinlich ist dies eine Konfiurationsmöglichkeit der Application-Servers.


----------



## FArt (22. Feb 2010)

> aber wahrscheinlich ist dies eine Konfiurationsmöglichkeit der Application-Servers.


Nicht zwingend, nur wenn es wichtig ist ;-)

Gerade in einer geclusterten Umgebung kommt es aber auch darauf an, wie der Messaging Service an sich konfiguriert ist und das MDB... da gibt es ein paar Varianten, die keine pauschalen Aussagen zulassen, z.B. ist ein ein MDB Typ auf einer Queue oder verschiedene Queues usw.

Mach dir über solche Kleinigkeiten erst mal keine Gedanken... die DB Abfragen bgzl. MDBs werden (in der von dir beschriebenen Infrastruktur) werden gegenüber das Last, die deine Applikation versursacht, nicht auffallen!


----------

