2017-02-15 11 views
0

Вчера я встретил следующее исключение.Какие данные указывает на наличие доступности InactivityMonitor ActiveMQ?

org.apache.activemq.transport.InactivityIOException: Канал был неактивным слишком (> 30000) долго: TCP: //127.0.0.1 ......

Исключение было брошенному при выполнении метода фиксации сеанса очереди. Я узнал, когда исключение высылается на официальный сайт activeMQ. Он говорит:

соединения контролируются:

  • Обеспечение данных считывается из соединения в течение заданного периода времени (Max неактивности Продолжительность).
  • Дать сообщение KeepAliveInfo в соединение, если нет нормального ActiveMQ трафика не передаются через соединения в течение указанного периода времени.

и

Использование значений по умолчанию; если данных не был записан или считан с соединением в течение 30 секунд, InactivityMonitor запускает. InactivityMonitor выдает исключение InactivityIOException и отключает транспорт , связанный с соединением.

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

Каковы данные в точности?

И что же означают следующие слова?

  • KeepAliveInfo сообщение
  • нормальный ActiveMQ трафика

Спасибо заранее.

ответ

0

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

Обычно регулярный поток сообщений или от брокера будет достаточным для поддержания активности соединения, но когда ситуация успокаивается, монитор бездействия начинает отправлять пакеты KeepAliveInfo брокеру, и брокер будет отвечать в натуральной форме, это действует как PING и PONG чтобы соединение сокета все еще живое и хорошее.

В вашем случае, кажется, клиент не смог получить данные от брокера и решил, что соединение или брокер должны быть неисправны. Вам нужно будет исследовать журналы как брокера, так и клиента, чтобы попытаться выяснить, что происходит в то время, когда это произошло.