TIBCO JMS с клиентом .NET - Проблема с застрявшими сообщениями в очереди

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

  •  11-10-2019
  •  | 
  •  

Вопрос

Мы используем TIBCO JMS 4.3.3 с той же версией .NET TIBCO.EMS.DLL для .NET 2.0 У нас есть огромные проблемы с застрявшими сообщениями в очереди. Мы потребляем сообщения из одной очереди, которая преодолела темы. Наше приложение создает несколько потребителей с долговечными сеансами - в каждом долговечном сеансе есть один потребитель. Сессии и потребители создаются в основном потоке, но сами потребители потребляют сообщения с использованием метода rete () с тайм -аутом в отдельных потоках. У каждого потребителя есть собственный поток, в которой он работает. На каждом успешном получении мы называем Commit на сессии, которая создала потребителя, который получил сообщение (извините за уродливую формулировку).

Проблема заключается в том, что когда эти очереди сильно заполняются (по мосту из темы), многие сообщения застряли - ни одна из потоков не может их получить, и мы можем ясно видеть, как они просматривают очередь, и они переизданы, если мы перезагружаем наше приложение. Кроме того, мы видим, что когда сообщения застряли, количество отправленных сообщений не равны количеству подтвержденных сообщений, если запуск «Показать потребитель» в консоли TIBCO.

Мы абсолютно потеряны - мы пытались включить и отключить предварительную фигуру для этой очереди. Ни одно решение не сработало. Мы увеличили тайм -аут приема с 1 секунды до 1 минуты, и все еще сообщения застряли, когда количество ожидающих сообщений пересекает некоторую границу.

Любая помощь, совет или предложение будут высоко оценены.

Это было полезно?

Решение

В конце концов, мы узнали, что в версии TIBCO EMS была ошибка, заставляя некоторые клиенты подключения к замораживанию. Он был зафиксирован в 5.x

Другие советы

Кажется, где -то в коде вашего потока действует как приемник очередей, не хватает подтверждения Commit. Я предлагаю просмотреть код потребителей .. и, возможно, многопоточное. Я предполагаю, что все темы слушают уникальные очереди ..

-HB

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top