Адаптер, управляемый сообщениями, перестаньте получать сообщения через пару днейJAVA

Программисты JAVA общаются здесь
Anonymous
Адаптер, управляемый сообщениями, перестаньте получать сообщения через пару дней

Сообщение Anonymous »

У меня есть проблема, которую я не могу решить. />






< /code>
После этого адаптера Autpundchannel отправит это XML в тему «MyTopic», подписчики прочитают это сообщение и вводят в другой поток через адаптер, управляемый сообщениями, см. Ниже < /p>

< /code>
Теперь все работает хорошо, вот шаги: < /p>

Сообщение отправляется в очередь < /li>
Затем это сообщение перенаправляется в тему с помощью исходящего адаптера. < /li>
Получаемое находное адаптер. запускает поток. < /li>
< /ol>
Однако примерно через одну неделю (более или менее) развертывания, будь то в разработке, предварительном производстве или даже производстве, поток, вызванный соблюдением адаптеров, управляемого сообщения вызвано, и что сообщения даже не отправляются в очередь. Вот мое объяснение. Я наблюдал это в журналах (потому что сначала я думал, что это может быть связано с проблемами транзакций), и я считаю, что это поведение связано с долговечной подпиской (подписка по-прочитанного = "true") в входящем адаптере. 2.7.18 < /p>
И пружинная интеграция переносится с 4.3.18. Информация в весенней документации здесь:
https://docs.spring.io/spring-integrati ... e/jms.html
образное/> Специально, она говорит:
Начиная с версии 5.1, когда конечная точка останавливается при приложении остается приложением, подключенное подключаемое подключение. Ранее соединение и потребители оставались открытыми. Чтобы вернуться к предыдущему поведению, установите ShutdownContaineronStop на jmsmessagedrivenendpoint на false. < /P>
Что я понимаю из этого, так это то, что у адаптера, управляемого сообщением, есть слушатель, который получает сообщения для внутренней конечной точки. Весна говорит: < /p>
«Когда ваша конечная точка остановлена, я возьму на себя ответственность, чтобы остановить его слушателя, потому что не имеет смысла, чтобы она оставалась открытой». @Bean
public JmsMessageDrivenEndpoint initJmsInEventEnricherAdapter(@Qualifier("jmsInEventEnricherAdapter")
JmsMessageDrivenEndpoint messageDrivenEndpoint) {
messageDrivenEndpoint.setShutdownContainerOnStop(false);
return messageDrivenEndpoint ;
}

< /code>
Однако это решение не решило проблему, проблема все еще сохраняется примерно через неделю. < /p>
может кто -нибудь мне помочь? Потому что, конечно, я не хочу перезагружать приложение для моих пользователей каждый раз, когда это происходит.
Большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/797 ... le-of-days

Вернуться в «JAVA»