BAM アクティビティ データの収集を開始する前に、BAM インターセプター ソフトウェアをインストールし、BAM Windows Communication Foundation (WCF) インターセプター サービスを使用するようにアプリケーションを構成する必要があります。 BizTalk Server とその依存関係が正常にインストールされ、少なくとも 1 つの BizTalk グループが作成されていることを前提としています。
BAM-Eventing ソフトウェアのインストール
WCF の BAM インターセプターを使用するように WCF アプリケーションを構成する前に、BizTalk Server セットアップ プログラムを使用して BAM-Eventing ソフトウェアをインストールする必要があります。 BAM-Eventing ソフトウェアのインストールとパフォーマンス カウンターの登録の詳細については、「 BAM-Eventing ソフトウェアのインストール」を参照してください。
追跡用の WCF アプリケーションの構成
WCF アプリケーションで BAM イベント情報の書き込みを開始するには、次の 4 つのタスクを完了する必要があります。
監視モデルは、BizTalk Server BAM ツールを使用して作成し、BAM マネージャー コマンド ライン ツール (bm.exe) を使用して展開する必要があります。
インターセプター構成ファイルは、BAM マネージャー コマンド ライン ツール (bm.exe) を使用して作成および展開する必要があります。
ホスト アプリケーションを実行しているユーザーは、適切な BAM アクティビティ イベント ライター (bam_<activity>_EventWriter) SQL Server ロールのメンバーである必要があります。このロールにより、アプリケーションはインターセプター構成情報を読み取り、BAM アクティビティに書き込みます。
BAM 追跡サービスを読み込むには、サーバーおよびクライアント アプリケーションの App.config ファイルを変更する必要があります。 App.config ファイルが変更されたら、アプリケーションを再起動する必要があります。
これらのタスクが正常に完了した後でのみ、イベントが BizTalk Server BAM データベースに表示されます。
観測モデルのデプロイ
インターセプター構成ファイルをデプロイしたり、アプリケーションで BAM アクティビティをキャプチャしたりする前に、監視モデルをデプロイしておく必要があります。
bm.exe を使用して観測モデルをデプロイするには
[ スタート ] をクリックし、[ 実行 ] をクリックして Windows コマンド プロンプトを開きます。
[開く] フィールドに「cmd」と入力し、[OK] をクリックします。
ディレクトリの変更コマンドを使用して、デプロイする監視モデルを含むディレクトリに移動します。 たとえば、 cd c:\businessprocess\Orders です。
bm.exeを使用して観測モデルをデプロイします。
\Program Files (x86)\Microsoft BizTalk Server <VERSION>tracking\bm.exe deploy-all -Definitionfile:<definitionfile.xml>
< definitionfile.xml>は、デプロイする観測モデル ファイルの名前に置き換えてください。 その他のオプションについては、「 インターセプター管理コマンド」を参照してください。
注
ユーザー アカウント制御 (UAC) をサポートするシステムでは、管理者特権でツールを実行することが必要になる場合があります。
「Exit」と入力し、Enter キーを押してコマンド プロンプトを閉じます。
インターセプター構成ファイルのデプロイ
アプリケーションが BAM アクティビティをキャプチャできるようにするには、インターセプター構成ファイルをデプロイする必要があります。
bm.exe を使用してインターセプター構成ファイルをデプロイするには
[ スタート ] をクリックし、[ 実行 ] をクリックして Windows コマンド プロンプトを開きます。
[開く] フィールドに「cmd」と入力し、[OK] をクリックします。
ディレクトリの変更コマンドを使用して、デプロイするインターセプター構成ファイルを含むディレクトリに移動します。 たとえば、 cd c:\businessprocess\Orders です。
bm.exeを使用してインターセプター構成ファイルをデプロイします。
\Program Files (x86)\Microsoft BizTalk Server <VERSION>Tracking\bm.exe deploy-interceptor -Filename:<icfile.xml>
必ず<icfile.xml>を、デプロイしたいインターセプター構成ファイルの名前に置き換えてください。
注
-Force:True フラグを使用すると、インターセプター構成ファイルと同じ名前で既存のイベント ソースをオーバーライドできます。 その場合は、 get-interceptor コマンドを使用して既存の構成をバックアップしてください。 -Force:True フラグを使用すると、上書きされるイベント ソースを参照するすべてのインターセプター構成が削除される可能性があります。
注
ユーザー アカウント制御 (UAC) をサポートするシステムでは、管理者特権でツールを実行することが必要になる場合があります。
「Exit」と入力し、Enter キーを押してコマンド プロンプトを閉じます。
WCF アプリケーションを既にデプロイしている場合、新しい構成は次のポーリング間隔まで読み込まれません。 ただし、アプリケーションを構成して再起動すると、構成はすぐに取得されます。
適切な BAM アクティビティ ロールへのユーザーの追加
BAM インターセプター フレームワークは、アクティビティごとの SQL Server ロールを使用して、アクティビティと構成情報へのアクセスを制御します。 WCF アプリケーションを実行しているユーザー アカウントを BAMPrimaryImport データベースの適切な BAM アクティビティ ロールに追加する必要があります。
BAM 追跡サービスを読み込む Windows Communication Foundation アプリケーションの構成
BAM 追跡サービスを読み込むアプリケーションを構成するには、サーバーまたはクライアント アプリケーションの App.config ファイルに数行を追加します。
WCF サーバーまたはクライアント アプリケーションで BAM 追跡を有効にするには、App.config 構成ファイルを変更して、エンドポイントの動作と動作の拡張機能を追加し、動作構成属性を追加する必要があります。 サービス テンプレートとクライアント テンプレートの形式は似ています。
WCF アプリケーションを構成するときは、次の点に注意してください。 同じアプリケーション (つまり、同じクライアントまたはサービス) の App.config で複数の BAM エンドポイント動作が定義されている場合、BAM は次のアクションを実行します。
接続文字列が異なる場合、BAM が例外を発生させます。
ポーリング間隔のみが異なる場合、BAM は 1 つを選択して次に進みます。 デザイン時に、どれを選択するかを決定することはできません。
注
接続文字列が同じ場合、つまり同じコンピューターを参照している場合は、BAM 処理が正常に続行されます。
次のサンプル App.config テンプレートは、WCF サーバー アプリケーション用に構成されています。 WCF インターセプターを使用するように構成されたカスタム動作 "bamEndpointBehavior" を使用するエンドポイントを定義します。
<system.serviceModel>
<services>
<service name="Service.CreditCardAuthorization">
<!-- The endpoint will use the "bamEndpointBehavior" -->
<endpoint address="http://localhost:8081/CreditCardService" contract="Service.ICreditCardAuthorization" name="CreditCardEndPoint" binding ="wsDualHttpBinding" bindingConfiguration="wsDualHttpBinding_ICreditCardAuthorization" behaviorConfiguration="bamEndpointBehavior"/>
</service>
</services>
<bindings>
<wsDualHttpBinding>
<binding name="wsDualHttpBinding_ICreditCardAuthorization" transactionFlow="true" />
</wsDualHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<!-- Define a new behavior named "bamEndpointBehavior" -->
<behavior name="bamEndpointBehavior">
<BamEndpointBehaviorExtension ConnectionString="Initial Catalog=BamPrimaryImport;Data Source=MyMachine;Integrated Security=SSPI;" InterceptorConfigurationPollingInterval="1500" />
</behavior>
</endpointBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<!-- Define a new enpoint behavior extension using WCF interceptor -->
<add name="BamEndpointBehaviorExtension" type="Microsoft.BizTalk.Bam.Interceptors.Wcf.BamEndpointBehavior, Microsoft.BizTalk.Bam.Interceptors, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</behaviorExtensions>
</extensions>
</system.serviceModel>
独自の App.config ファイルで使用する前に、このテンプレートに小さな変更を加える必要があります。
WCF サービス App.config ファイルでこのテンプレートを使用するには
アプリケーションに関連付けられている App.config ファイルを開きます。 このタスクには、Notepad.exe または別のテキスト エディターを使用できます。
次の XML を使用して、WCF BamEndpointBehavior 動作拡張機能を
extensions
要素に追加します。<behaviorExtensions> <add name="BamEndpointBehaviorExtension" type="Microsoft.BizTalk.Bam.Interceptors.Wcf.BamEndpointBehavior, Microsoft.BizTalk.Bam.Interceptors, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </behaviorExtensions>
注
動作拡張機能の名前は "BamEndpointBehaviorExtension" であり、環境に合わせて必要に応じて変更できます。
次の XML を使用して、新しい動作拡張を使用する新しいエンドポイント動作を
behaviors
要素に追加します。 動作拡張機能は、接続文字列とポーリング間隔を秒単位で提供します。<endpointBehaviors> <behavior name="bamEndpointBehavior"> <BamEndpointBehaviorExtension ConnectionString="Initial Catalog=BamPrimaryImport;Data Source=MyMachine;Integrated Security=SSPI;" InterceptorConfigurationPollingInterval="1500" /> </behavior> </endpointBehaviors>
データ ソースを、環境内の BamPrimaryImport データベースをホストしているコンピューターの名前に置き換えます。 要件に合わせてポーリング間隔を変更します。数値が大きいほど、WCF インターセプターが構成の変更を検出するのに時間がかかることを意味します。 動作拡張機能の名前を変更した場合は、それを使用して "BamEndpointBehaviorExtension" を置き換えます。
注
動作名は "bamEndpointBehavior" であり、環境に合わせて変更できます。
注
ConnectionString
を指定するときは、クリア テキストのユーザー名とパスワードの組み合わせを使用しないでください。 これにより、データベース サーバーが侵害される可能性があります。注
5 (秒) 以上の
PollingIntervalSec
を指定する必要があります。 小さい値を指定するか、PollingIntervalSec
要素を省略すると、エラーが発生し、インターセプトは構成されません。追跡するエンドポイントに
behaviorConfiguration
属性を追加し、新しい動作の名前を指定します。<endpoint address="http://localhost:8081/CreditCardService" contract="Service.ICreditCardAuthorization" name="CreditCardEndPoint" binding ="wsDualHttpBinding" bindingConfiguration="wsDualHttpBinding_ICreditCardAuthorization" behaviorConfiguration="bamEndpointBehavior"/>
注
別の動作名を使用した場合は、代わりに指定します。
動作の構成は、複数のエンドポイントに適用できます。
変更した App.config ファイルを保存し、アプリケーションを再起動します。