Je crée une application de délégation de message simple. Les messages sont envoyés aux deux extrémités via JMS. J'utilise une MDB pour traiter les messages entrants, les transformer et les envoyer vers une file d'attente cible. Malheureusement, les mêmes messages peuvent être envoyés à la file d'attente entrante plus d'une fois, mais il n'est pas autorisé à transmettre les doublons.Valeurs de cache dans Java EE
Alors, quel est le meilleur moyen d'y parvenir? Comme il peut y avoir plusieurs MDB écoutant dans la file d'attente entrante, j'ai besoin d'un seul cache où je peux stocker les messages uniques des messages entrants pendant au moins une heure. Comment ce cache devrait-il être accessible? Via une classe singleton/static (je cours Java EE 5 et je n'ai donc pas l'annotation singleton)?
En outre, je pense que toutes les opérations doivent être synchronisées, non? Cela nuit-il trop aux performances?
Salut et merci pour la réponse rapide. Je suis d'accord pour la plupart de vos avantages, mais je pense que l'utilisation d'une solution DB est un peu exagéré pour "simplement" mettre en cache certaines chaînes. De plus, j'aurais encore besoin d'un travail supplémentaire pour expirer les clés et nettoyer la table car je n'ai pas besoin d'un protocole à long terme de messages entrants. En ce qui concerne la synchronisation: je pense que la DB ne fait que cacher cela. Mais néanmoins, je vais proposer votre suggestion. Après un peu plus de lecture, qu'en est-il de ehcache? – Ingo