다음을 통해 공유


인터셉션을 위한 Windows Communication Foundation 애플리케이션 구성 방법

BAM 활동 데이터 수집을 시작하기 전에 BAM 인터셉터 소프트웨어를 설치하고 BAM WCF(Windows Communication Foundation) 인터셉터 서비스를 사용하도록 애플리케이션을 구성해야 합니다. BizTalk Server 및 해당 종속성을 성공적으로 설치했으며 하나 이상의 BizTalk 그룹을 만들었다고 가정합니다.

BAM-Eventing 소프트웨어 설치

WCF용 BAM 인터셉터를 사용하도록 WCF 애플리케이션을 구성하려면 먼저 BizTalk Server 설치 프로그램을 사용하여 BAM-Eventing 소프트웨어를 설치해야 합니다. BAM-Eventing 소프트웨어를 설치하고 성능 카운터를 등록하는 방법에 대한 자세한 내용은 BAM-Eventing 소프트웨어 설치를 참조하세요.

추적용 WCF 응용 프로그램 구성

WCF 애플리케이션이 BAM 이벤트 정보 작성을 시작하기 전에 네 가지 작업을 완료해야 합니다.

  • 관찰 모델은 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를 입력한 다음 확인을 클릭합니다.

  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> 배포하려는 관찰 모델 파일의 이름으로 바꿔 < 야 합니다. 자세한 옵션은 인터셉터 관리 명령을 참조하세요.

    참고

    UAC(사용자 계정 컨트롤)를 지원하는 시스템에서는 관리 권한을 사용하여 도구를 실행해야 할 수 있습니다.

  5. Exit를 입력한 다음 Enter 키를 눌러 명령 프롬프트를 닫습니다.

인터셉터 구성 파일 배포

응용 프로그램에서 BAM 활동을 캡처할 수 있으려면 먼저 인터셉터 구성 파일을 배포해야 합니다.

bm.exe를 사용하여 인터셉터 구성 파일을 배포하려면
  1. 시작을 클릭한 다음 실행을 클릭하여 Windows 명령 프롬프트를 엽니다.

  2. 열기 필드에 cmd를 입력한 다음 확인을 클릭합니다.

  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> 배포하려는 인터셉터 구성 파일의 이름으로 바꿔 < 야 합니다.

    참고

    -Force:True 플래그를 사용하여 인터셉터 구성 파일의 이름과 동일한 이름의 기존 이벤트 원본을 재정의할 수 있습니다. 이렇게 하면 get-interceptor 명령을 사용하여 기존 구성을 백업해야 합니다. -Force:True 플래그를 사용하면 덮어쓰려는 이벤트 소스를 참조하는 인터셉터 구성이 삭제될 수 있습니다.

    참고

    UAC(사용자 계정 컨트롤)를 지원하는 시스템에서는 관리 권한을 사용하여 도구를 실행해야 할 수 있습니다.

  5. Exit를 입력한 다음 Enter 키를 눌러 명령 프롬프트를 닫습니다.

    WCF 애플리케이션을 이미 배포한 경우 다음 폴링 간격까지 새 구성이 로드되지 않습니다. 하지만 응용 프로그램을 구성하고 다시 시작할 경우 구성이 즉시 선택됩니다.

적절한 BAM 활동 규칙에 사용자 추가

BAM 인터셉터 프레임워크는 활동당 SQL Server 역할을 사용하여 활동과 구성 정보에 대한 액세스를 제어합니다. WCF 응용 프로그램을 실행하는 사용자 계정을 BAMPrimaryImport 데이터베이스에서 적절한 BAM 활동 역할에 추가해야 합니다.

Windows Communication Foundation 응용 프로그램에서 BAM 추적 서비스를 로드하도록 구성

서버 또는 클라이언트 응용 프로그램의 App.config 파일에 몇 줄을 추가하여 응용 프로그램에서 BAM 추적 서비스를 로드하도록 구성합니다.

WCF 서버 또는 클라이언트 애플리케이션에서 BAM 추적을 사용하도록 설정하려면 추가 엔드포인트 동작 및 동작 확장을 포함하고 동작 구성 특성을 추가하도록 App.config 구성 파일을 수정해야 합니다. 서비스와 클라이언트 템플릿 형식은 비슷합니다.

WCF 애플리케이션을 구성할 때 다음 사항에 유의하세요. 동일한 응용 프로그램, 즉 동일한 클라이언트나 서비스에 대해 App.config에 정의된 BAM 엔드포인트 동작이 둘 이상 있는 경우 BAM은 다음 조치를 취합니다.

  • 연결 문자열이 다른 경우 BAM에서 예외가 발생합니다.

  • 폴링 간격만 다른 경우 BAM은 하나를 선택하고 계속 진행합니다. 디자인 타임에는 어느 쪽을 선택할지 결정할 수 없습니다.

참고

연결 문자열이 동일한 경우 즉 동일한 컴퓨터를 참조하는 경우 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을 사용하여 요소에 extensions WCF BamEndpointBehavior 동작 확장을 추가합니다.

    <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"으로 지정되며 사용자 환경에 맞게 필요에 따라 변경할 수 있습니다.

  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"을 바꿉니다.

    참고

    동작 이름은 "bamEndpointBehavior"가 되며 사용자 환경에 맞게 변경할 수 있습니다.

    참고

    를 지정할 때는 일반 텍스트 사용자 이름/암호 조합을 사용하지 마세요 ConnectionString. 이렇게 하면 데이터베이스 서버가 손상될 수 있습니다.

    참고

    5(초)보다 크거나 같은 을 지정 PollingIntervalSec 해야 합니다. 더 낮은 값을 지정하거나 요소를 생략 PollingIntervalSec 하면 오류가 발생하고 가로채기가 구성되지 않습니다.

  4. behaviorConfiguration 추적할 엔드포인트에 특성을 추가하고 새 동작의 이름을 제공합니다.

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

    참고

    다른 동작 이름을 사용한 경우 대신 해당 이름을 제공합니다.

    여러 개의 엔드포인트에 동작 구성을 적용할 수 있습니다.

  5. 수정된 App.config 파일을 저장하고 응용 프로그램을 다시 시작합니다.