0

在 Tibco 中,有时会向控制台打印警告,例如:

2014-06-25 18:13:22 RV:TIB/集合点错误未由进程处理:{ADV_CLASS="WARN" ADV_SOURCE="RVCM" ADV_NAME="REGISTRATION.NOT_CERTIFIED.cm.test.subject" subject="cm. test.subject" sender="cm.sender.cmname"}

我正在为 Tibco 使用 .NET 包装器。这些错误似乎并没有真正进入 .NET,并且它们不能被 try/catch 捕获,因此它们可以得到适当的处理。

有没有办法在.NET 中处理这个错误?也许某种注册处理程序以处理此类错误的方法?或者,是否有一种方法可以将这些警告重定向到控制台以外的接收器,例如日志文件?

4

1 回答 1

0

解决方案是添加一个“catch all”处理程序。

我正在听的当前主题是:

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

要添加全部捕获,请在以下位置添加另一个侦听器:

private readonly string _subjectDeliveryGlobal = ">";

添加新监听器时,请记住为每个监听器使用单独的监听器具体类,否则 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);

Tibco 安装目录中有许多示例 C# 代码,这些代码\src\说明了上面显示的技术。

于 2014-06-26T15:04:54.480 回答