2010-01-08 7 views
2

У меня есть издатель и подписчик C#, которые разговаривают друг с другом с помощью ActiveMQ и NMS. Все работает нормально, за исключением того, что у меня нет возможности узнать, когда ActiveMQ идет вниз. Это особенно плохо для потребителя. Они перестают получать данные, но, кроме того, что данные перестают отображаться, никаких ошибок и событий не возникает.Как узнать, как отключить ActiveMQ с помощью NMS и C#

Есть ли способ, с помощью NMS (Particulary Apache.NMS.IConnection или объекты Apache.NMS.ISession)

Я скачал реализацию, я использую с весны, но я не использую какой-либо конкретной Spring, все, что я использую, находится в пространствах Apache.NMS и Apache.NMS.ActiveMQ.

ответ

2

Ну, это было много, так как этот вопрос был задан, но теперь у вас есть несколько событий, доступных:

m_connection.ConnectionInterruptedListener += new ConnectionInterruptedListener(OnConnectionInterruptedListener); 
m_connection.ConnectionResumedListener += new ConnectionResumedListener(OnConnectionResumedListener); 
m_connection.ExceptionListener += new ExceptionListener(OnExceptionListener); 

где m_connection является объектом IConnection.

С этими 3 событий вы сможете найти, когда ваш брокер вниз (среди другой полезной информации, например, когда он возобновляет соединение или когда он встречает исключение)

Примечание: Если вы находитесь в сбое режиме, эти исключения будут проглатываться перегрузочным транспортным уровнем и автоматически обрабатываться вместе с ними. Следовательно, вы не получите ни одного из этих событий.

Смежные вопросы