Qu'advient-il si un message est annulée en MQ?
Je reçois un message d'un de WebSPhere MQ file d'attente. J'essaie de processus et si je reçois quelques exceptions près, je veux reprendre le message de la MQ File d'attente.
Je n'ai aucun problème à faire de même. Qu'advient-il le message? Faut-il aller vers le bas de la file d'attente?
Si j'ai essayer de l'extraire d'un message de la file d'attente je reçois le même message que j'ai rolledback?
Qu'est-ce que le comportement susceptible d'être? Je veux savoir ce comportement typiquement dans un volume élevé de la File d'attente scénario?
Apprécier toutes les entrées.
Grâce,
Manglu
InformationsquelleAutor Manglu | 2009-05-26
Vous devez vous connecter pour publier un commentaire.
Si vous faites la file d'attente des opérations dans le cadre d'une transaction, et une annulation survient, puis, après l'opération, décide de la file d'attente et le message apparaîtra juste comme il l'a fait avant le début de la transaction. En d'autres termes, aucune modification n'.
Dans un volume élevé scénario, cependant, il est courant d'avoir plusieurs transactionnel des lecteurs et des auteurs sur une seule file d'attente, et ils n'ont pas de blocage de l'ensemble de la file d'attente pour chaque de la le d'attente ou de mettre en file d'attente.
Ces lecteurs et d'auteurs pour insérer des éléments dans la file d'attente, ou de retirer des éléments de la file d'attente d'un point de vue transactionnel, tandis que votre transaction condamnée est la résolution. Dans ce cas, d'autres éléments de file d'attente peut apparaître ou disparaître (ou les deux).
Si après annulation de la transaction d'origine, vous pouvez à nouveau retirer de la file d'attente, vous peut obtenir le message d'origine, mais vous ne pouvez pas. Dans un grand volume, de haute concurrence scénario, il est possible qu'un autre lecteur aura tiré le message avant de votre code peut le faire.
Restauration laisse le message sur la file d'attente et de la place pour une nouvelle livraison.
Toutefois, lorsqu'un (configurable) limite de tentatives de re-livraison a été atteint, le message est mis de côté sur la "lettre morte de la file d'attente".
Un exemple typique où ce sont des s.c. 'poison de messages: les messages qui ne peuvent pas être traitées en raison de fondamentaux et non transitoire des problèmes (comme un format non valide, champs manquants, etc).
Donc, avant de vous rollback (et mettre le message dans la file d'attente), assurez-vous de penser que l'erreur est transitoire (comme les connexions à l'arrière-plan étant cassé) ou pas.
Dans ce dernier cas, il est préférable d'avaler le message et le journal d'une erreur ou d'incendie certaines autres alerte. Sinon, le message consommer inutilement à la fois la puissance de traitement et la file d'attente de l'infrastructure.
HTH
Guy
Pour répondre à un couple de points spécifiques de ce fil...