BAM コードの管理に関する考慮事項
BAM を使用するアプリケーションのインストルメント化の方法を決定する場合は、要件が変更になる可能性を考慮する必要があります。 Microsoft.BizTalk.Bam.EventObservation.EventStream クラスの 1 つでメソッドを呼び出して監視対象データを書き込む場合、基本的には、アプリケーションに観測モデルをハードコーディングします。 監視対象データを変更する必要がある場合は、アプリケーションをオフラインにして、コードを変更し、アプリケーションを再コンパイルして、更新したアプリケーションを再展開する必要があります。
または、 Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor クラスでメソッドを呼び出すと、アプリケーションをインストルメント化できます。 Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor クラスは構成ファイルを参照し、監視対象のイベントとデータを決定します。 Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor クラスを使用すると、コードを一度インストルメント化すれば、メタデータを更新することによって監視対象データを変更できるので、アプリケーションをオフラインにする必要はありません。
EventStream オブジェクトを使用したアプリケーションのインストルメント化
この方法はより簡単で、特定の監視要件がよくわかっている専用アプリケーションをビルドする場合に適しています。 この方法を使用する場合は、次の点を明確にしておく必要があります。
BAM のマイルストーンは何か、コードのどこで発生するのか。
監視するデータは何か、コードのどこで、いつ、そのデータを使用できるのか。
これらの質問のいずれかに対する回答が変わる可能性がある場合は、代わりに Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor オブジェクトを使用してアプリケーションをインストルメント化することを検討する必要があります。
このハードコーディングの方法では、必要に応じて単純に、 Microsoft.BizTalk.Bam.EventObservation.DirectEventStream、 Microsoft.BizTalk.Bam.EventObservation.BufferedEventStream、 MessagingEventStream クラスで (パイプライン実装から) メソッドを呼び出すか、または OrchestrationEventStream クラスで (オーケストレーション実装から) メソッドを呼び出します。
BAMInterceptor オブジェクトを使用したアプリケーションのインストルメント化
この方法は、次の場合にお勧めします。
データの可視性とアプリケーションのパフォーマンスとのバランスを調整する必要があり、実行時に監視対象データを制御したい。
アプリケーションで大容量の XML メッセージを処理し、その中のデータが最終的に監視に重要になる可能性がある。
別のデータを監視するために、アプリケーションを停止してコードを変更する余裕がない。
この方法では、 Microsoft.BizTalk.Bam.EventObservation.BAMInterceptor クラスのメソッドを使用して、一般的な方法でアプリケーションをインストルメント化します。 さまざまな構成をインターセプターに渡すことによって、BAM が監視するデータを変更できます。
追跡プロファイル エディター (TPE) を使用すると、BAM が BizTalk オーケストレーションから収集するデータを変更できます。