Как с Tibco Rendezvous отлавливать ошибки, которые выводятся на консоль?

В Tibco иногда в консоль выводятся предупреждения, например:

25.06.2014, 18:13:22 RV: ошибка TIB/Rendezvous не обрабатывается процессом: {ADV_CLASS="WARN" ADV_SOURCE="RVCM" ADV_NAME="REGISTRATION.NOT_CERTIFIED.cm.test.subject" subject="cm. test.subject" отправитель="cm.sender.cmname"}

Я использую оболочки .NET для Tibco. Похоже, что эти ошибки на самом деле не попадают в .NET, и их нельзя поймать с помощью try/catch, чтобы их можно было обработать соответствующим образом.

Есть ли способ обработать эту ошибку в .NET? Возможно, какой-то метод регистрации обработчика для обработки таких ошибок? Или, альтернативно, есть ли способ перенаправить эти предупреждения в приемник, отличный от консоли, например. файл журнала?


person Contango    schedule 25.06.2014    source источник


Ответы (1)


Решение состоит в том, чтобы добавить обработчик «поймать все».

Текущая тема, которую я слушал, была:

private readonly string _subjectDeliveryConfirm = "_RV.INFO.RVCM.DELIVERY.CONFIRM.>";

Чтобы добавить все, добавьте еще один слушатель:

private readonly string _subjectDeliveryGlobal = ">";

Когда вы добавляете новый слушатель, не забудьте использовать отдельный конкретный класс Listener для каждого слушателя, иначе Tibco таинственным образом перестанет работать после первого сообщения (см. демонстрационный код, как создать несколько слушателей).

_confirmListener1 = new Listener(Queue.Default, _netTransport, _subjectDeliveryConfirm, null);
_confirmListener1.MessageReceived += new MessageReceivedEventHandler(OnCertifiedMessageConfirmed);

// Subscribe to error messages, in particular error messages related to remote listener processes
// disappearing.
_confirmListener2 = new Listener(Queue.Default, _netTransport, _subjectDeliveryGlobal, null);
_confirmListener2.MessageReceived += new MessageReceivedEventHandler(OnTibcoCatchAll);

В каталоге \src\ есть много примеров кода C# для установки Tibco, которые иллюстрируют методы, показанные выше.

person Contango    schedule 26.06.2014
comment
Осторожно: добавляя обработчик Catch All, вы подписываетесь на все сообщения Tibco во всей сети. Вместо того, чтобы добавлять все, добавьте отдельные ловушки для каждого типа необработанных сообщений, которые могут возникнуть в реальности, и ограничьте тему сообщениями, которые вас интересуют. - person Contango; 13.01.2016