次の方法で共有


傍受のために Windows Communication Foundation アプリケーションを構成する方法

BAM アクティビティ データの収集を開始するには、BAM インターセプター ソフトウェアをインストールし、BAM Windows Communication Foundation (WCF) インターセプター サービスを使用するようにアプリケーションを構成する必要があります。 BizTalk Serverとその依存関係が正常にインストールされ、少なくとも 1 つの BizTalk グループが作成されていることを前提としています。

BAM イベント ソフトウェアのインストール

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 アクティビティに書き込むことができるようになります。

  • サーバーおよびクライアント アプリケーションの App.config ファイルを、BAM 追跡サービスを読み込むように変更する必要があります。 App.config ファイルの変更後にアプリケーションを再起動する必要があります。

    これらのタスクが正常に完了した後にのみ、BizTalk Server BAM データベースにイベントが表示されます。

監視モデルの展開

アプリケーション内でインターセプター構成ファイルを展開したり、BAM アクティビティを取得したりするには、監視モデルを展開する必要があります。

bm.exe を使用して監視モデルを展開するには
  1. [ スタート ] をクリックし、[ 実行 ] をクリックして Windows コマンド プロンプトを開きます。

  2. [開く] フィールドに「cmd」と入力し、[OK] をクリックします

  3. ディレクトリ変更のコマンドを使用して、展開する監視モデルが格納されているディレクトリに移動します。 たとえば、 cd c:\businessprocess\Orders です

  4. bm.exe を使用して次のように監視モデルを展開します。

    \Program Files (x86)\Microsoft BizTalk Server <VERSION>Tracking\bm.exe deploy-all -Definitionfile:<definitionfile.xml>

    definitionfile.xml> は、デプロイする観測モデル ファイルの名前に置き換えてください<。 その他のオプションについては、「 インターセプター管理コマンド」を参照してください。

    Note

    ユーザー アカウント制御 (UAC) をサポートするシステムでは、管理者特権を使用してこのツールを実行することが必要な場合があります。

  5. Exit」 と入力し、Enter キーを押してコマンド プロンプトを閉じます。

インターセプター構成ファイルの展開

アプリケーションで BAM アクティビティを取得できるようにするには、インターセプター構成ファイルを展開する必要があります。

bm.exe を使用してインターセプター構成ファイルを展開するには
  1. [ スタート ] をクリックし、[ 実行 ] をクリックして Windows コマンド プロンプトを開きます。

  2. [開く] フィールドに「cmd」と入力し、[OK] をクリックします

  3. ディレクトリ変更のコマンドを使用して、展開するインターセプター構成ファイルが格納されているディレクトリに移動します。 たとえば、 cd c:\businessprocess\Orders です

  4. bm.exe を使用して、次のようにインターセプター構成ファイルを展開します。

    \Program Files (x86)\Microsoft BizTalk Server <VERSION>Tracking\bm.exe deploy-interceptor -Filename:<icfile.xml>

    icfile.xml> は、デプロイするインターセプター構成ファイルの名前に置き換えてください<。

    Note

    -Force:True フラグを使用すると、インターセプター構成ファイルと同じ名前の既存のイベント ソースをオーバーライドできます。 その場合は、 get-interceptor コマンドを使用して既存の構成をバックアップしてください。 –Force:True フラグを使用すると、上書きされるイベント ソースを参照するインターセプター構成が削除される可能性があります。

    Note

    ユーザー アカウント制御 (UAC) をサポートするシステムでは、管理者特権を使用してこのツールを実行することが必要な場合があります。

  5. 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 では次の処理が行われます。

  • 接続文字列が異なる場合は、例外を生成します。

  • ポーリング間隔のみが異なる場合は、いずれかを選択して処理を続行します。 どちらを選択するかをデザイン時に指定することはできません。

Note

接続文字列が同じである (同じコンピューターを参照している) 場合、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 ファイルで使用するには
  1. アプリケーションに関連付けられている App.config ファイルを開きます。 これには、Notepad.exe またはその他のテキスト エディターを使用できます。

  2. 次の 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>  
    

    Note

    動作拡張機能の名前は "BamEndpointBehaviorExtension" になりますが、必要であれば環境に合わせて変更できます。

  3. 次の XML を使用して、新しい動作拡張機能を使用する behaviors 新しいエンドポイント動作を 要素に追加します。 この動作拡張機能で、接続文字列とポーリング間隔 (秒単位) を指定します。

    <endpointBehaviors>  
      <behavior name="bamEndpointBehavior">  
        <BamEndpointBehaviorExtension ConnectionString="Initial Catalog=BamPrimaryImport;Data Source=MyMachine;Integrated Security=SSPI;" InterceptorConfigurationPollingInterval="1500" />  
      </behavior>  
    </endpointBehaviors>  
    

    データ ソースは、使用している環境の BamPrimaryImport データベースをホストするコンピューターの名前に置き換えてください。 要件に合わせてポーリング間隔を変更します。数値が大きいほど、WCF インターセプターの構成変更の検出に時間がかかることを意味します。 動作拡張機能の名前を変更している場合は、"BamEndpointBehaviorExtension" の代わりにその名前を使用します。

    Note

    動作名は "BamEndpointBehavior" ですが、環境に合わせて変更できます。

    Note

    を指定するときは、クリアテキストのユーザー名とパスワードの ConnectionString組み合わせを使用しないでください。 使用すると、データベース サーバーが危険にさらされる可能性があります。

    Note

    5 (秒) 以上を指定 PollingIntervalSec する必要があります。 小さい値を指定するか、 要素を PollingIntervalSec 省略すると、エラーが発生し、インターセプトは構成されません。

  4. 追跡する behaviorConfiguration エンドポイントに 属性を追加し、新しい動作の名前を指定します。

    <endpoint address="http://localhost:8081/CreditCardService" contract="Service.ICreditCardAuthorization" name="CreditCardEndPoint" binding ="wsDualHttpBinding" bindingConfiguration="wsDualHttpBinding_ICreditCardAuthorization" behaviorConfiguration="bamEndpointBehavior"/>  
    

    Note

    別の動作名を使用している場合は、その名前を代わりに使用してください。

    この動作構成は複数のエンドポイントに適用できます。

  5. 変更した App.config ファイルを保存し、アプリケーションを再起動します。