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" 送信者="cm.sender.cmname"}

Tibco の .NET ラッパーを使用しています。これらのエラーは実際には .NET に組み込まれていないように見えますが、try/catch でキャッチできないため、適切に処理できます。

.NET でこのエラーを処理する方法はありますか? おそらく、このようなエラーを処理するハンドラを登録する何らかの方法でしょうか? あるいは、これらの警告をコンソール以外のシンク (ログ ファイルなど) にリダイレクトする方法はありますか?

4

1 に答える 1

0

解決策は、「キャッチオール」ハンドラーを追加することです。

私が現在聞いていた主題は次のとおりでした。

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\Tibco インストールのディレクトリには、上記の手法を示すサンプル C# コードが多数あります。

于 2014-06-26T15:04:54.480 に答える