Ce n'est pas exactement la réponse que j'attendais... mais merci pour ta réponse.
En fait, je ne souhaite pas gérer cette problématique applicativement (par un dialogue entre les 2 serveurs), mais j'espèrais trouver une solution au niveau de la file MQ. Je pense qu'il doit y avoir un moyen de lui dire "à partir du moment où un message a commencé à être lu par quelqu'un, il est locké jusqu'à l'acquittement (donc plus personne ne peut le lire)".
En attendant, j'ai trouvé une solution qui n'est pas satisfaisante, mais qui réduit le risque de double-lecture.
Dans mon application-context-spring.xml, j'ai ajouté
<property name="acknowledge" value="client" />
et dans mon listener, j'acquitte le message dès le début
1 2 3
| public void onMessage(Message message, Session session) throws JMSException {
try {
message.acknowledge(); |
Partager