Bonjour à tous,
Voilà, je suis confronté à un petit soucis sur le projet sur lequel je travaille actuellement.
Tout d'abord, un mot sur l'environnement: je suis sur un serveur JBOSS 4.0.2 (sans possibilité d'upgrade), et j'utilise des EBJ2 Stateless avec hibernate 3.2.6 (sans possibilité d'upgrade non plus).
J'ai une appli qui gère des évenements en temps réel. Pour faire simple, j'ai plusieurs tables en DB dont une table RealTimeEvent mappé comme suit :
Nous avons une centaine d'utilisateurs qui gèrent ces events en fonction du pays et du partenaires auquel ils appartiennent. Comme c'est du real time et que c'est assez sensible, chaque utilisateur fait une requete toutes les 20 secondes pour avoir la liste des events à gérer pour les pays et les partenaires qu'il a le droit de surveiller. Cela fait donc beaucoup (trop?) de requetes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <class name="com.model.EventRealTime" table="EVENT_REAL_TIME"> <id name="eventId" column="EVENT_ID" type="long"/> <!-- Properties --> <!-- status is an Enum--> <property name="status" column="EVENT_STATUS" type="realTimeStatus" not-null="true"/> <!-- Relations --> <many-to-one name="country" column="COUNTRY_ID" class="com.model.Country" fetch="select" lazy="proxy"/> <many-to-one name="partner" column="PARTNER_CODE" class="com.model.Partner" fetch="select" lazy="proxy"/>
L'idée aurait été de mettre la liste des events dans une sorte de cache qui se rafraichisse une fois toutes les 20 secondes en bases, et que tous les clients tape ce cache.
Le problème est que les events sont potentiellement insérés et supprimés par une appli extérieure, je ne peux donc apparemment pas utiliser le cache Hibernate.
Quelqu'un aurait-il une idée?
Partager