TIBCO JMS mit .Net Client - Problem mit aufgeklebtem Nachrichten in Warteschlangen

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

  •  11-10-2019
  •  | 
  •  

Frage

Wir sind mit TIBCO JMS 4.3.3 mit der gleichen Version von .Net TIBCO.EMS.dll für .net 2.0 Wir haben große Probleme mit aufgeklebtem Nachrichten in Warteschlangen. Wir verbrauchen Nachrichten von einer Warteschlange, die vom Thema überbrückt wird. Unsere Anwendung erstellt mehr Verbraucher mit langlebigen Sitzungen - jeweils lang lebten Sitzungen haben einen Verbraucher. Die Sitzungen und die Verbraucher sind in dem Haupt-Thread erstellt, aber die Verbraucher selbst verbrauchen Nachrichten mit Timeout auf separate Threads Receive () Methode verwendet wird. Jeder Verbraucher hat eigenen Thread, in dem es funktioniert. Auf jedem erfolgreichen erhalten wir auf einer Sitzung Commit fordern die Verbraucher geschaffen, die die Nachricht (für hässliche Formulierung sorry) erhalten.

Das Problem ist, dass, wenn diese Warteschlangen stark (von der Brücke von Thema) gefüllt sind, viele von Nachrichten werden immer stecken - keine Threads sie empfangen kann, und wir können sie deutlich sehen, die Warteschlange browsen und sie wieder aufbereitet zu bekommen, wenn wir unsere neu starten Anwendung. Auch sehen wir, dass, wenn Nachrichten stecken Anzahl der gesendeten Nachrichten werden immer immer nicht auf die Anzahl der quittierten Meldungen entsprechen, wenn "Show Verbraucher in TIBCO-Konsole ausgeführt wird.

Wir sind absolut verloren - wir haben versucht, das Aktivieren und Deaktivieren Prefetch für diese Warteschlange. Weder Lösung gearbeitet. Wir erhöhten erhalten Timeout von 1 Sekunde bis 1 Minute und noch Nachrichten werden immer fest, wenn die Anzahl Meldungen anhängiger einige Grenze überqueren.

Jede Hilfe, Spitze oder einen Vorschlag wird sehr geschätzt werden.

War es hilfreich?

Lösung

In the end we found out that there was a bug in 4.4.3 version of TIBCO EMS causing some clients connections to freeze. It was fixed in 5.x

Andere Tipps

It seems somewhere in your thread code acting as a Queue Receiver is missing acknowledgment \ Commit. I suggest to review the consumers code.. and perhaps multi-threading. I assume all threads are listening to unique queues..

-hB

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top