0

C# .NET を介して BizTalk Server が特定の時点で送受信したメッセージの合計を取得するにはどうすればよいですか?

これを達成するためのアイデアはありますか?

4

3 に答える 3

2

BizTalk でのメッセージ追跡は、BAM を使用して行われます。もちろん、独自のデータベースとデータ アクセス API を作成することもできますが、なぜ作成するのでしょうか?!? 入門書として、 「ビジネス アクティビティ モニタリングの使用」を参照してください。学習曲線に惑わされないでください - 一度乗り越えれば、あなたはそれを好きになるでしょう!

この本には BAM に関する非常に優れたセクションがあります。バージョンに惑わされないでください。基本的な概念は 2010 にも当てはまります。

最後に、このツールは開発をスピードアップします。

于 2012-08-09T10:47:43.400 に答える
1

簡単な方法は、既存の BizTalk Perfmon カウンターを使用してメッセージを監視することです (ただし、最後のホスト インスタンスの再起動以降)。

BizTalkServerを使用して呼び出され、SendHost構成された BizTalk Server があると仮定するとReceiveHost、以下のメッセージ カウンターは、送受信されたメッセージを示します。

PerformanceCounter msgsReceivedCounter = new 
    PerformanceCounter("BizTalk:Messaging", "Documents received", "ReceiveHost", "BizTalkServer");
msgsReceivedCounter.ReadOnly = true;
PerformanceCounter msgsSentCounter = new 
    PerformanceCounter("BizTalk:Messaging", "Documents processed", "SendHost", "BizTalkServer");
msgsSentCounter.ReadOnly = true;

lblSent.Text = string.Format("{0}",  msgsSentCounter.NextValue());
lblReceived.Text = string.Format("{0}",  msgsReceivedCounter.NextValue());

グループに複数の BizTalk ホストがある場合は、すべてのホストを集約する必要があることに注意してください。

C# で PerformanceCounter クラスを使用する方法の詳細については、こちら を参照してください。BizTalk PerfMon カウンターの詳細については、こちらを参照してください。

于 2012-08-10T10:20:30.103 に答える
0

この情報は、トラッキング データベースの MessageInOutEvents テーブルにクエリを実行することで取得できます。これは、すべてのアクティビティが格納される 1 つのテーブルです。

唯一の要件は、BizTalk 環境でグローバル追跡プロパティをオフにする必要があることです。

于 2012-08-26T15:19:48.770 に答える