2010-11-16 6 views
1

Nous utilisons TIBCO JMS 4.3.3 avec la même version de .Net TIBCO.EMS.dll pour .net 2.0 Nous avons d'énormes problèmes avec les messages bloqués dans files d'attente. Nous consommons des messages d'une file d'attente qui est liée au sujet. Notre application crée plusieurs consommateurs avec des sessions de longue durée - chaque session de longue vie a un consommateur. Les sessions et les consommateurs sont créés dans le thread principal, mais les consommateurs eux-mêmes consomment des messages à l'aide de la méthode Receive() avec un délai d'attente sur des threads distincts. Chaque consommateur a son propre fil dans lequel cela fonctionne. Sur chaque réception réussie, nous appelons Commit sur une session qui a créé le consommateur qui a reçu le message (désolé pour les mots laids). Le problème est que lorsque ces files d'attente sont fortement remplies (par le pont du sujet) beaucoup de messages sont bloqués - aucun des threads ne peut les recevoir et nous pouvons clairement les voir parcourir la file d'attente et ils sont retraités si nous redémarrons notre application. De plus, nous voyons que lorsque les messages sont bloqués, le nombre de messages envoyés devient non égal au nombre de messages reconnus si vous exécutez 'show consumer' dans la console TIBCO.TIBCO JMS avec client .Net - problème avec les messages bloqués dans les files d'attente

Nous sommes absolument perdus - nous avons essayé d'activer et de désactiver la prélecture pour cette file d'attente. Aucune solution n'a fonctionné. Nous avons augmenté le délai de réception de 1 seconde à 1 minute et les messages restent bloqués lorsque le nombre de messages en attente dépasse une limite.

Toute aide, conseil ou suggestion sera grandement apprécié.

Répondre

1

En fin de compte, nous avons découvert qu'il y avait un bug dans la version 4.4.3 de TIBCO EMS provoque des connexions des clients à geler. Il a été corrigé dans 5.x

0

Il semble quelque part dans votre code de thread agissant comme un récepteur de file d'attente est manquant accusé de réception \ Commit. Je suggère de revoir le code des consommateurs .. et peut-être multi-threading. Je suppose que toutes les discussions sont à l'écoute des files d'attente uniques ..

-HB

Questions connexes