JMS TIBCO avec le client .Net - problème avec les messages bloqués dans les files d'attente

StackOverflow https://stackoverflow.com/questions/4199386

  •  11-10-2019
  •  | 
  •  

Question

Nous utilisons JMS TIBCO 4.3.3 avec la même version de .Net TIBCO.EMS.dll pour .net 2.0 Nous éprouvons d'énormes problèmes sommes avec des messages bloqués dans les files d'attente. Nous consommons les messages d'une file d'attente qui est ponté du sujet. Notre application crée plusieurs consommateurs avec des sessions à vie longue - chaque session vécu longtemps a un consommateur. Les sessions et les consommateurs sont créés dans le thread principal, mais les consommateurs eux-mêmes messages consommaient en utilisant la méthode de réception () avec délai d'attente sur des threads séparés. Chaque consommateur a son propre fil dans lequel il travaille. Sur chaque succès reçoivent, nous demandons Commit lors d'une session qui a créé consommateur qui a reçu le message (désolé pour libellé laid).

Le problème est que lorsque ces files d'attente est très rempli (par le pont de ce sujet) un grand nombre de messages deviennent bloqués - aucun des threads peuvent les recevoir et nous pouvons voir clairement les parcourant la file d'attente et ils se retraiter si nous relançons notre application. De plus, nous voyons que lorsque les messages deviennent nombre de messages envoyés bloqués deviennent non égal au nombre de messages reconnus si vous utilisez « consommateur show » dans la console de TIBCO.

Nous sommes tout à fait perdu - nous avons essayé activation et la désactivation prélecture pour cette file d'attente. Ni solution a fonctionné. Nous avons augmenté délai de réception de 1 seconde à 1 minute et encore des messages sont bloqués lorsque le nombre devient de messages en attente traversent une frontière.

Toute aide, conseil ou une suggestion sera très appréciée.

Était-ce utile?

La solution

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

Autres conseils

Il semble quelque part dans votre code de fil agissant comme une file d'attente du récepteur manque la reconnaissance \ 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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top