2010-01-07 8 views
0

J'ai une application nServicebus, maintenant mon application lit les messages du gestionnaire et supprime automatiquement les messages du bus. Mais ce que je veux, c'est qu'après avoir récupéré des messages de Handler, je ne devrais pas supprimer les messages du bus. Et après le traitement de mon message qui est fait par mon code, je vais retirer le message du bus. Cela signifie que je dois contrôler les messages.Comment puis-je contrôler les messages perdus par nServicebus?

Merci d'avance

Susanta Samanta

Répondre

2

NServiceBus exécute tous les gestionnaires dans un TransactionScope, cela signifie que si votre code renvoie une exception le message sera remis dans la file d'attente et retentée ultérieurement. Vous ne devriez donc pas vous soucier d'attraper des exceptions/gérer la façon dont les messages sont retirés de la file d'attente, NSB s'en occupe pour vous.

Si vous pouvez fournir plus d'informations sur ce que vous essayez de faire, je pourrais être en mesure de vous aider un peu plus?

+0

J'ai un service d'indexation qui indexe certains messages, mon problème se pose lorsque le service est arrêté de façon inattendue. Supposons qu'à ce moment-là j'avais déjà 100 messages sur 500 traités mais pas indexés (parce que l'indexeur ne fermait pas à ce moment-là). La prochaine fois que la machine redémarre, ces 100 messages sont perdus. Alors, comment puis-je conserver tous ces messages. Et je veux détruire ces 500 messages à la fois après l'indexation complète dans son ensemble. –

+2

Pour résoudre ce genre de problème, vous devriez jeter un oeil à "sagas" * http://nservicebus.com/Sagas.aspx * http://sourceforge.net/apps/mediawiki/nservicebus/index.php? title = Sagas * L'exemple de fabrication et starbucks affiche cette fonctionnalité C'est à dire que vous utilisez une saga pour garder une trace de tous les messages à écrire/qui sont écrits dans l'index. Espérons que cela aide! /Andreas –

Questions connexes