Я интегрировал ActiveMQ NMS с моим веб-сайтом asp mvc, и он по большей части отлично работает, но я столкнулся с кирпичной стеной из-за недавней проблемы и не могу понять, что это - что-то для меня Мне не хватает поддержки API или недостатка дизайна (возможно, в API) ...
Я пытаюсь сделать простую вещь - мне нужно проверить, была ли удалена временная очередь, прежде чем пытаться отправить ей сообщение. Временные очереди удаляются, как только клиент отключается, закрывает браузер и т. Д. Это нормально, потому что именно поэтому я использую временные очереди. тем не менее, я сохраняю адресаты на сервере, поэтому могу отправлять определенные сообщения определенным адресатам, пока они все еще подключены. все работает отлично, пока клиент не покинет / не закроет браузер, что означает, что ActiveMQ удалит временную очередь, и мне нужно прекратить отправку сообщений в эту временную очередь, пока они не переподключатся, потому что, если я попытаюсь, я получу это исключение:
javax.jms.JMSException: целевая временная очередь: // ID: WIN-HP6U1SD1FB4-29628-1329687650640-0: 1: 85 не существует.
, что имеет смысл, поскольку временная очередь исчезла с тех пор, как они покинули страницу или закрыли браузер. Но вот кикер, который убивает меня - после этого исключения (которое я ловлю) вся система обмена сообщениями выходит из строя! activemq просто больше не отправляет сообщения, пока я не перезапущу его. это кажется абсолютно сумасшедшим, если я не пропускаю что-то очень фундаментальное в том, как я использую это. в основном то, что я не могу понять, это:
1) почему activeMQ отключается, когда пытается отправить сообщение во временную очередь dest, которой не существует ?? почему он не может просто выбросить исключение и продолжить ??
2) хорошо, я могу жить с # 1, но как мне проверить, существует ли временная очередь назначения, прежде чем я отправлю ее? ничто в API, кажется, не поддерживает это.
3) если # 2 по какой-то безумной причине не представляется возможным, как мне восстановиться после этого исключения jms, которое приводит к выходу из строя всей системы очереди сообщений?
Я бы отправил код, но не уверен, что это поможет.