Мы используем TIBCO JMS 4.3.3 с той же версией .Net TIBCO.EMS.dll для .net 2.0 У нас большие проблемы с застрявшими сообщениями в очереди. Мы потребляем сообщения из одной очереди, которая соединяется с темой. Наше приложение создает многопользовательских клиентов с долгоживущими сессиями - каждый долгоживущий сеанс имеет одного потребителя. Сеансы и потребители создаются в основном потоке, но сами потребители потребляют сообщения с использованием метода Receive() с таймаутом в отдельных потоках. У каждого потребителя есть собственный поток, в котором он работает. При каждом успешном получении мы вызываем Commit на сеансе, который создал пользователя, который получил сообщение (извините за уродливую формулировку).TIBCO JMS с .Net клиентом - проблема с застреванием сообщений в очередях
Проблема заключается в том, что, когда эти очереди заполняются сильно (от моста от темы), многие сообщения застревают - ни один из потоков не может их получить, и мы можем четко видеть, как они просматривают очередь, и они перерабатываются, если мы перезапускаем наше приложение. Также мы видим, что когда сообщения застревают, количество отправленных сообщений становится не равным количеству подтвержденных сообщений при запуске «show consumer» в консоли TIBCO.
Мы абсолютно потеряны - мы попытались включить и отключить предварительную выборку для этой очереди. Ни одно решение не работало. Мы увеличили тайм-аут приема от 1 секунды до 1 минуты, и все еще сообщения застревают, когда количество ожидающих сообщений пересекает границу.
Любая помощь, подсказка или предложение будут высоко оценены.