Я не уверен, что происходит в приведенных ниже сценариях, было бы очень полезно, если бы кто-то это объяснил.
Производитель (P) отправляет сообщения M1, M2, M3, M4, M5, M6, M7; при условии, что оно отправлено от времени T1 до T7.
Предположим, ActiveMQ используется в качестве JMS-провайдера (AMQ)
Потребитель сообщений (L) будет слушателем, связанным с темой.
Название темы: jmsTopic
Сценарий 1:
AMQ работает, L не подключен к jmsTopic в AMQ. P отправляет M1 в M7 в jmsTopic. Если L подключен к jmsTopic в момент времени, скажем, T8, который больше, чем T7, он получит сообщения от M1 до M7 или только сообщения, отправленные в тему после времени T8.
Сценарий 2:
AMQ работает, L подключен и слушает jmsTopic, P отправляет M1 на M4. L получает от M1 до M4. Тем временем L обрабатывает M1-M4, P отправляет M5-M7, однако L вылетает во время обработки M4. Если L снова подключается к jmsTopic, получает ли он от M5 до M7, или L получает только те сообщения, которые были отправлены после того, как L подключился к jmsTopic.
Сценарий 3:
AMQ работает, L подключен и слушает jmsTopic, P отправляет M1 на M7. Однако AMQ вылетает; L осведомлен о состоянии AMQ и повторно подключается после запуска и запуска AMQ.