Real Time Updates von der Datenbank mit JSF / Java EE

Ich habe eine Anwendung in der folgenden Umgebung ausgeführt.

GlassFish Server 4.0JSF 2.2.8-02PrimeFaces 5.1 finalPrimeFaces Extension 2.1.0OmniFaces 1.8.1EclipseLink 2.5.2 mit JPA 2.1MySQL 5.6.11 JDK-7u11

Es gibt mehrere öffentliche Seiten, die träge aus der Datenbank geladen werden. In der Kopfzeile der Vorlagenseite werden einige CSS-Menüs angezeigt, z. B. in Bezug auf Kategorie / Unterkategorie, Verkaufsschlager, Neuzugang usw.

Die CSS-Menüs werden basierend auf verschiedenen Produktkategorien in der Datenbank dynamisch aus der Datenbank ausgefüllt.

Diese Menüs werden bei jedem Seitenaufruf ausgefüllt, was völlig unnötig ist. Einige dieser Menüs erfordern komplexe / teure JPA-Kriterienabfragen.

Zurzeit sind die JSF-verwalteten Beans, die diese Menüs füllen, auf den Anzeigebereich beschränkt. Sie sollten alle anwendungsspezifisch sein, nur einmal beim Start der Anwendung geladen und nur aktualisiert werden, wenn etwas in den entsprechenden Datenbanktabellen (Kategorie / Unterkategorie / Produkt usw.) aktualisiert / geändert wird.

Ich habe einige Versuche unternommen, WebSokets zu verstehen (noch nie zuvor ausprobiert, für WebSokets völlig neu) wieDie undDie. Sie haben bei GlassFish 4.0 einwandfrei funktioniert, beinhalten jedoch keine Datenbanken. Ich kann immer noch nicht richtig verstehen, wie WebSokets funktionieren. Vor allem, wenn Datenbank beteiligt ist.

Wie können Sie in diesem Szenario die zugeordneten Clients benachrichtigen und die oben genannten CSS-Menüs mit den neuesten Werten aus der Datenbank aktualisieren, wenn in den entsprechenden Datenbanktabellen etwas aktualisiert / gelöscht / hinzugefügt wird?

Ein einfaches Beispiel wäre toll.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage