Bonjour à tous
Ma question est un peu ardue ?!?! enfin je suppose ...
J'ai, en cours, une application qui gére des alertes pour des services de sécurité.
Tout est programmé en java sous Tomcat6. Les connexions à la base de données sont réalisées via JPA/Hibernate, le tout managé par Spring ORM.
Le design est assuré par IcesFaces/JSP.
Lorsqu'un client connecté effectue une modification sur une donnée dans la BdD, la partie affichant cette donnée est rafraîchit sur l'ensemble des clients via l'API Renderer d'IceFaces ( Server Push). Ainsi, tout le monde possède les informations à jour sans générer du traffic inutile sur le réseau.
M A I S
Il se trouve qu'aujourd'hui une application externe vient modifier des données directement dans la BdD ...
D O N C
je n'ai plus ce fonctionnement de rafraîchissement !! Ouch !!
Quelqu'un aurait une idée pour faire en sorte que mes clients soient toujours à jour ? BdD = MySQL donc, si je ne me trompe pas, les triggers ... c'est pas top ...
Ma solution du moment
A moins de trouver mieux ( ce que j'espère ) je me dirige vers la solution suivante :
Une modification en BdD, génère une ligne dans une table Modif_Base remplie avec NomComposant_NomTable_NumeroLigne. Un service externe lit cette table et envoie des requêtes HTTP vers un Servlet situé dans mon contexte d'application pour récupérer une référence sur l'Objet IceFaces qui implémente les mises à jour automatiques sur les clients. Je demande alors, à réception de la requête, de rafraichir les composant identifiés par NomComposant_NomTable_NumeroLigne
Ce besoin a peut être été traité par quelqu'un ici ?
Une autre façon de faire serait peut-être mieux ?
Le traffic sur le réseau risque d'exploser !
Merci pour toute info !![]()
Partager