Merci pour vos réponses,

Le mardi 08 septembre 2009 à 17:02 +0200, Lionel Bouton a écrit :
> Les détails de prefetch limit m'échappent, mais dans ce qui me semble
> être la même veine, Stompserver distribue tous les messages aux clients
> sans attendre de ack. Ce comportement est modifié lorsqu'un client
> s'inscrit avec :ack => 'client'. Dans ce dernier cas Stompserver attend
> un accusé de réception du client avant de passer au message suivant.

Voici un exemple pour vous permettre de comprendre mon besoin (constat
issu de tests précédemment effectués) :

J'ai un processeur activemessaging avec 3 pollers inscrits avec
acquittement client (:ack => 'client').
Ces pollers exécutent des tâches longues (plusieurs minutes voir
plusieurs heures).
Un premier message arrive et son exécution monopolise l'un des pollers
qui ne renverra son ack au broker qu'a la fin du traitement.
Le 1ere poller étant occupé, un second message arrive. Du fait de
l'attente ack, le processeur dirige l'exécution de ce second message
vers le 2eme poller qui à son tour ne renverra un ack qu'à la fin du
traitement.
Le même scénario se produit pour le 3eme poller et tous les pollers sont
ainsi occupés.
Si un 4eme message arrive avant que l'un des pollers soit à nouveau
disponible, le message est perdu, le processeur renvoyant simplement un
message d'erreur au broker.
La solution serait il me semble de limiter le nombre de message à
destination du processeur (prefetch limit), soit 3 dans le cas présent,
correspondant au nombre de pollers du processeur.
Dans ce cas, si un 4eme message arrive au broker (celui-ci ayant
comptabilisé le nombre de messages précédemment envoyés au processeur)
attend simplement que l'un des pollers du processeur ce libère. Aucun
message n'est perdu.
La prefetch limit complète l'utilisation de l'ack 'client'.

Pour plus d'info sur la prefetch limit d'activeMQ :

http://activemq.apache.org/what-is-the-prefetch-limit-for.html

Pour le moment, je comptabilise les tâches en cours d'execution par mes
pollers dans la db avec une limite haute fixée au nombre de pollers.


Le mardi 08 septembre 2009 à 17:26 +0200, Cyril Mougel a écrit :
> Moi j'utilise nanite \o/

je vais regarder nanite de plus près.

Cdt,

Jérémy.



--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
-~----------~----~----~----~------~----~------~--~---

Répondre à