Vous ne devriez rien faire pour maintenir l'ordre; c'est l'une des choses qu'une file de messages fait pour vous. Je pense que si vous avez un seul consommateur qui écoute la file d'attente et qu'il traite les messages dans le désordre, alors vous avez trouvé un bug ou les messages ne sont pas mis en file d'attente dans l'ordre que vous pensez qu'ils sont.
En outre, il y a this question du ActiveMQ FAQ qui pourrait aider.
Modifier: À la lecture des commentaires sur duffymo's answer, il semble que vous êtes un peu overengineering. En général, une file d'attente de messages comme ActiveMQ, MQ Series, joram, etc. a deux caractéristiques: ils délivrent les messages dans le même ordre que celui dans lequel ils sont placés et garantissent la livraison des messages. L'envoi d'un message ACK distinct est redondant; c'est un peu comme valider une transaction de base de données, puis interroger la même information pour vérifier que la base de données l'a réellement stocké.
Cela étant dit, votre serveur est-il multithread? Si c'est le cas, il peut mettre en file d'attente la réponse avant et mettre en file d'attente l'ACK.
Veuillez consulter ce fil pour un peu plus d'informations sur le problème http://stackoverflow.com/questions/269363/activemq-net-client-locks-up – HitLikeAHammer