다음을 통해 공유


인터셉션용 Workflow Foundation 애플리케이션 구성 방법

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

BAM-Eventing 소프트웨어 설치

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

추적용 Windows Workflow Foundation 응용 프로그램 구성

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

  • 관찰 모델은 BizTalk Server BAM 도구를 사용하여 만든 다음 BAM Manager 명령줄 도구(bm.exe)를 사용하여 배포해야 합니다.

  • BAM 관리자 명령줄 도구(bm.exe)를 사용하여 인터셉터 구성 파일을 만들고 배포해야 합니다.

  • 호스트 애플리케이션을 실행하는 사용자는 적절한 BAM 활동 이벤트 기록기(bam_<activity>_EventWriter) SQL Server 역할의 멤버여야 애플리케이션이 인터셉터 구성 정보를 읽고 BAM 활동에 쓸 수 있습니다.

  • BAM 추적 서비스를 로드하도록 App.config 파일 또는 응용 프로그램 자체를 수정한 다음 응용 프로그램을 다시 시작해야 합니다.

    이러한 작업이 성공적으로 완료된 후에만 이벤트가 BizTalk Server BAM 데이터베이스에 표시되기 시작합니다.

관찰 모델 배포

인터셉터 구성 파일을 배포하거나 응용 프로그램에서 BAM 활동을 캡처하려면 먼저 관찰 모델을 배포해야 합니다.

bm.exe를 사용하여 관찰 모델을 배포하려면
  1. 시작을 클릭한 다음 실행을 클릭하여 Windows 명령 프롬프트를 엽니다.

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

  3. 디렉터리 변경 명령을 사용하여 배포할 관찰 모델에 포함된 디렉터리로 이동합니다 예를 들어 cd c:\businessprocess\Orders입니다.

  4. bm.exe를 사용하여 관찰 모델을 배포합니다.

    c:\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 키를 눌러 명령 프롬프트를 닫습니다.

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

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

BAM 인터셉터 프레임워크는 활동당 SQL Server 역할을 사용하여 활동과 구성 정보에 대한 액세스를 제어합니다. BAM 기본 가져오기 데이터베이스의 적절한 BAM 활동 역할에 WF 애플리케이션을 실행하는 사용자 계정을 추가해야 합니다.

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

WF 애플리케이션에서 BAM 추적 서비스를 로드하는 세 가지 시나리오가 있습니다.

  • WF 애플리케이션이 이미 WorkflowRuntime을 사용하여 WF 구성 섹션을 로드하는 경우 BAM 추적 서비스 정보를 기존 섹션에 추가할 수 있습니다.

  • WF 애플리케이션이 WorkflowRuntime을 사용하여 WF 구성 섹션을 로드하지 않는 경우 애플리케이션 구성 파일에서 사용자 지정 섹션을 로드하는 코드를 추가해야 합니다. 섹션을 만들고 해당 섹션에 BAM 추적 서비스 정보를 추가해야 합니다.

  • 구성을 하드 코딩하려는 경우 WF API를 사용하여 구성 파일 없이 추적 서비스를 프로그래밍 방식으로 로드하거나 사용자 지정 원본에서 구성을 로드할 수 있습니다.

    WF 애플리케이션을 구성할 때 다음 고려 사항에 유의하세요.

  • WF 인터셉터에서는 WorkflowRuntime 1개당 하나의 BamTrackingService만 지원합니다.

  • WF 인터셉터 는 애플리케이션 도메인당 여러 BamTrackingService 인스턴스를 지원합니다.

    • N개의 WorkflowRuntime에 N개의 BamTrackingService가 지원됩니다.
  • 동일한 응용 프로그램 도메인에서 별도의 BamTrackingService 인스턴스에 서로 다른 연결 문자열이 사용되는 경우 인터셉터는 예외를 일으킵니다.

  • 인터셉터는 시작하는 첫 번째 BamTrackingService 인스턴스에서 IC 폴링 간격 값을 가져옵니다.

  • 인터셉터는 응용 프로그램 도메인의 마지막 BamTrackingService가 중지될 때 IC 폴링 스레드를 중지합니다.

    WorkflowRuntime 및 구성 정보 로드에 대한 자세한 내용은 를 참조하세요 https://go.microsoft.com/fwlink/?LinkId=83314.

BAM 추적 서비스용 App.config 파일을 구성하려면
  1. 응용 프로그램과 연결된 App.config 파일을 엽니다. 이 작업에 대해 Notepad.exe 또는 다른 텍스트 편집기를 사용할 수 있습니다.

  2. 다음 구성 정보를 App.config 파일에 삽입하여 BAM 추적 서비스를 추가합니다. 요소의 configuration 자식이 되도록 배치해야 합니다.

    참고

    섹션 요소는 WorkflowRuntime 클래스를 사용할 때 응용 프로그램 코드에서 사용된 이름과 일치해야 합니다.

    <!-- The element name must match the one expected by WorkflowRuntime in your WF application -->
    <WorkflowServiceContainer>
      <Services>
        <add type="Microsoft.BizTalk.Bam.Interceptors.Workflow.BamTrackingService, Microsoft.BizTalk.Bam.Interceptors, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
       ConnectionString="Integrated Security=SSPI;Data Source=.;Initial Catalog=BAMPrimaryImport"
          PollingIntervalSec="5"/>
        </Services>
    </WorkflowServiceContainer>
    
  3. 사용자 환경과 일치하도록 ConnectionString 특성을 수정합니다.

  4. 애플리케이션을 다시 시작합니다.

사용자 지정 구성 섹션을 로드하도록 응용 프로그램을 수정하려면
  1. Visual Studio에서 Windows Workflow Foundation 프로젝트를 엽니다.

  2. WorkflowRuntime에 대한 응용 프로그램의 인스턴스에 적절한 매개 변수가 포함된 BamTrackingService의 새 인스턴스를 추가합니다.

    // !! Replace "WorkflowServiceContainer" with the section name
    // you used in your App.config file.
    WorkflowRuntime workflowRuntime = new WorkflowRuntime("WorkflowServiceContainer");
    
  3. 수정된 응용 프로그램을 다시 컴파일하고 배포합니다.

BAM 추적 서비스를 프로그래밍 방식으로 로드하도록 응용 프로그램을 수정하려면
  1. Visual Studio에서 Windows Workflow Foundation 프로젝트를 엽니다.

  2. WorkflowRuntime에 대한 응용 프로그램의 인스턴스에 적절한 매개 변수가 포함된 BamTrackingService의 새 인스턴스를 추가합니다.

    string connectionString = "Integrated Security=SSPI;Data Source=.;Initial Catalog=BAMPrimaryImport"
    int pollingInterval = 5;
    WorkflowRuntime workflowRuntime = new WorkflowRuntime();
    workflowRuntime.AddService(new BamTrackingService(connectionString, pollingInterval));
    

    특정 환경을 기반으로 매개 변수를 추가하거나 제거할 수 있습니다.

  3. 수정된 응용 프로그램을 다시 컴파일하고 배포합니다.