Bonjour,
Je suis en train de mettre en place un programme Java serveur qui lit une queue remote via JMS.
Ce programme tourne en tâche de fond, et traite les messages reçu via un JMSListener et la méthode onMessage()
Dans la méthode onMessage, selon le type de message, je vais en traiter certains et pas d'autres.
Deux problèmes distincts se posent:
- Lorsqu'un message sera traité, il va appeler la méthode 'acknowledge' sur lui-même, consumant ainsi tous les messages lus par la session en court. Comment faire donc pour que le message n'ayant pas à être traité ne soit pas consommé lors d'un acknowledge() d'un autre message ?
- Comment faire pour que le listener traite à nouveau les messages non traités une fois la queue entièrement traitée ? (exemple: il y a 100 messages dans la queue, dont 3 qui n'ont pas a être traité par le programme. Après traintement de la queue il doit donc en rester 3, le programme doit pouvoir détecter à nouveau ces trois messages dans le 'onMessage')
J'ai lu quelques sujets sur la première question, comme quoi la solution serait une queue temporaire. Je n'ai pas vraiment bien compris en quoi cela permettrait de résoudre le problème... si jamais quelqun a des explications / une solution à me proposer je suis tout ouïe 
Pour ce qui est de la seconde question, je n'ai pas encore trouvé de sujet la traitant, je suis donc ouvert à toute proposition.
Si je n'ai pas été suffisamment clair, n'hésitez pas à m'en faire part.
En remerciant d'avance ceux qui pourront m'aider sur ce sujet.
Cordialement.
Partager