slt
une question d'ordre général sur spring/jms
j'ai une appli spring qui communique entre ses modules via jms.
pour limiter le nombre de messages vers différents module, j'utilise un throttle. Celui ci me permet de contrôler exactement le nb de message sur un espace de temps donné. Disons que c'est un espèce de heartbeat . En effet le fait de jouer sur le nombre de consommateur de la queue n'est pas assez précis.
Donc mon throttle est appelé au début de la méthode onMessage() : si un jeton de temps est disponible, la méthode s'exécute sinon je lève une exception. Mon acknowledgement est en mode CLIENT_ACKNOWLEDGE. Avec ce système j'espérai que la levé d'exception forcerait JMS a ne pas appeler la méthode message.acknowledge() et donc que le message soit retenté à nouveau, mais ce n'est pas le cas : il est essayé une seule fois quoiqu'il se passe.
Donc questions :
- comment forcer jms à retenter le message ?
- sinon peut on utiliser un système pour limiter à un tempo précis (ce point est très important), l'arrivée des messages jms ?
Partager