2009-03-11 6 views
1

Hey! Ich bin relativ neu zu beiden Java EE und Stackowerflow, bitte seien Sie freundlich :-)Ejb 3, Message Driven Bean kooperiert mit einer Stateful Session Bean?

Ich habe eine Reihe von Geräten triggern Java-Nachrichten bei jeder Statusänderung gesendet werden. Diese Vorrichtungen sind typischerweise für Intervalle von etwa 30 bis 90 Minuten aktiv. Jede Ereignisnachricht enthält zusätzlich zu den Ereignisdetails eine Geräte-ID.

Zentral in meiner Anwendung ist eine Message-Driven-Bean, die diese Ereignisse abonniert. Jedes Mal, wenn ich ein Ereignis erhalte, muss ich die Datenbank durchsuchen, um einige Informationen über das Gerät zu erhalten.

Es wäre absolut grandios, wenn ich jedem aktiven Gerät eine Stateful Session Bean zuordnen könnte! Wenn dies eine Webanwendung gewesen wäre, hätte ich die http-Sitzung verwendet, um ein Handle oder einen Verweis auf die Stateful-Bean zu speichern (ich habe recht?). Gibt es eine Möglichkeit, dass ich das von meiner Message Bean archivieren kann?

+0

Sind diese Gerätedaten veränderbar? Was machen Sie, wenn ein Gerät geändert wird? Dann unterscheidet sich der Status der Entität, die Sie in der Geschäftslogik haben, von der Repräsentation in der Datenbank. Meiner Meinung nach sollten Daten nur an einem Ort gespeichert werden. – Timo

Antwort

2

Es wäre nett, außer es kann nicht getan werden, wie Sie erklärt haben. MDBs (und SLSBs) sind per Definition zustandslos, so dass es sicher ist, eine Konversation nur während des Aufrufs zu führen.

Sie könnten schließlich die Spezifikation brechen und irgendwo ein statisches Attribut erstellen (vielleicht in der MDB selbst), aber das wäre sicherlich nicht portierbar, auch nicht skalierbar.

Mein Vorschlag ist es, Caching auf der JPA-Ebene zu aktivieren (siehe Ihren Persistence Provider der Präferenz für Details), so dass Sie alle Daten, die Sie benötigen, sehr schnell (wirklich schnell) suchen können. Dies ist portabel und Cluster-freundlich. So mache ich es in meinen Projekten und bin sehr zufrieden damit.

Ich hoffe, es hilft.

0

Ich bin nicht so komfortabel, spezifische Produkte zu empfehlen, aber ist der Terrakotta-Server Adressierungsbedürfnisse nicht so?

Verwandte Themen