2012-02-20 10 views
0

Я интегрировал ActiveMQ NMS с моим веб-сайтом asp mvc, и он работает отлично по большей части, но я столкнулся с кирпичной стеной с моей недавней проблемой и не могу понять, насколько я в этом нуждаюсь Отсутствует поддержка API или даже недостаток дизайна (возможно, в API) ...activeMQ nms в .NET - как проверить, была ли удалена временная очередь?

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

javax.jms .JMSException: временная очередь назначения: // ID: WIN-HP6U1SD1FB4-29628-1329687650640-0: 1: 85 не существует.

, который имеет общий смысл, потому что временная очередь ушла с тех пор, как они покинули страницу или закрыли браузер. Но вот кикер, который убивает меня - после этого исключения (которое я поймаю) вся система обмена сообщениями идет вниз! activemq больше не отправляет сообщения, пока я его не перезапущу. это кажется абсолютно сумасшедшим, если я не пропущу что-то очень фундаментальное в том, как я его использую. в основном то, что я не могу понять:

1) почему activeMQ идет вниз, когда он пытается отправить сообщение в очередь temp queue, которая не существует ?? почему он не может просто выбросить исключение и продолжить?

2) отлично, я могу жить с # 1, но как я могу проверить, существует ли очередь назначения темпа, прежде чем отправить его? Ничто в API, похоже, не поддерживает это.

3) если # 2 по какой-то сумасшедшей причине невозможно, как мне восстановить из этого исключения jms, которое сбрасывает всю систему очереди сообщений?

Я бы опубликовал код, но не уверен, что это поможет.

ответ

1

Я думаю, что вы столкнулись с ошибкой NMS, которая была недавно решена (см. https://issues.apache.org/jira/browse/AMQNET-377). Если вы обновляетесь до версии 1.5.5 или новее, у вас должны быть лучшие результаты.