Я экспериментировал с объектом TopicSubscriber сегодня (с ActiveMQ в качестве моего брокера сообщений и JMS-провайдера). Я обнаружил, что если я инициировал синхронный прием (с таймаутом в 2 мс) после установления соединения, то возникнет исключение, если я остановлю ActiveMQ между установлением соединения с ним и инициацией первого приема. Но если я установил соединение, то получил успешное получение, затем остановил посредника, а затем сделал второе получение, что вместо того, чтобы сгенерировать исключение для этого приема, я постоянно получал нулевое сообщение обратно - без указания того, что соединение с брокер был потерян - даже после ожидания пару часов. И затем, после перезапуска ActiveMQ, если моя программа не закроет и не возобновит свое подключение к нему, ни один из ее приемов не будет работать.
Я знаю, что могу обойти это, но мне интересно, пропустил ли я что-то, если я знаю, как определить, потеряно ли мое соединение - пожалуйста, скажите, есть ли способ, или это просто " особенность "реализации JMS ActiveMQ, которую мне нужно кодировать вокруг.