У меня есть клиентское приложение, богатое Java, которое регистрирует долговременную подписку на удаленную тему HornetQ JMS при запуске. Однако, если сервер перезагружается, соединение теряется и может быть восстановлено только путем перезапуска клиентского приложения. Это приводит к запутывающим ситуациям, когда сообщения JMS не принимаются и после того, как клиент перезагружает много сообщений, принимаются сразу.Как узнать, когда соединение с темой JMS потеряно?
Простым решением для восстановления соединения было бы запустить таймер, чтобы периодически проверять, действительно ли соединение по-прежнему действует и попытаться повторно подключиться. В качестве альтернативы сервер может послать пульс клиенту и попытаться подключиться, если после определенного периода времени не будет приниматься пульс (как указано в этом answer).
Но оба кажутся неуклюжими подходами к этой проблеме, и поэтому я хотел бы знать, есть ли лучшее решение, чтобы узнать, что соединение больше не доступно?