Windows Server AppFabric 모니터링 저장소에서 추적된 변수 검색

이 샘플에서는 Entity Framework를 사용하여 AppFabric 모니터링 데이터베이스에서 추적된 워크플로 변수를 검색 및 역직렬화하는 방법을 보여 줍니다. 여기에는 이 기능을 가능하게 해주는 모니터링 데이터베이스에서 공개되는 일부 공용 보기에 대한 설명도 나옵니다. 이 샘플은 모든 응용 프로그램에서 작동합니다. AppFabric 샘플과 함께 사용하도록 만들어진 공통 Windows Server AppFabric 샘플 응용 프로그램을 사용하는 것이 좋습니다. 이 응용 프로그램을 찾으려면 <samples>\SampleApplication\OrderApplication 폴더로 이동합니다. 여기서 <samples>는 AppFabric 샘플을 설치한 경로입니다.

참고

샘플은 교육용으로만 제공됩니다. 프로덕션 환경에서 사용하도록 작성된 것은 아니며 프로덕션 환경에서 테스트되지 않았습니다. Microsoft는 이러한 샘플에 대한 기술 지원을 제공하지 않습니다.

사전 요구 사항

  • Windows Server AppFabric 설치에 모니터링이 구성되어 있어야 합니다.

  • AppFabric에 하나 이상의 WCF 또는 WF 서비스가 호스트되어 있어야 합니다.

참고

이 샘플은 복잡한 유형의 변수를 추적하도록 서비스가 구성되어 있는 경우의 모니터링 기능을 더 잘 보여 줍니다.

사용자 지정 어셈블리에서 추적된 변수를 역직렬화할 경우 어셈블리에서 이러한 개체를 적절하게 역직렬화할 수 있도록 어셈블리(예: AppFabric 샘플 응용 프로그램)를 이 프로젝트에 대한 참조로 추가해야 합니다.

샘플 파일

이 샘플은 다음 파일과 함께 제공됩니다.

  • VS 2010 솔루션 구조 및 지원 코드 파일

  • TrackedWFVariable.cs

  • Program.cs

이 샘플 설정 및 실행

  1. 변수가 추적되어 모니터링 데이터베이스에 저장되어 있는지 확인합니다. 이렇게 하려면 WFEventProperties 보기를 조사하여 행이 있는지 확인할 수 있습니다.

  2. 이 샘플과 함께 제공된 Visual Studio 솔루션을 엽니다.

    중요

    AppFabric 모니터링 데이터베이스에 대한 읽기 권한이 있는 계정을 사용하여 실행해야 합니다.

  3. Program.cs에서 데이터베이스 값이 원하는 데이터베이스를 가리키도록 편집합니다.

  4. Program.cs에서 AppFabricMonitoringEntities 생성자에 전달되는 값을 편집합니다. 기본적으로 이 값은 SQL Express 인스턴스를 가리킵니다. 파일이 복잡해지지 않도록 표준 SQL 인스턴스 이름은 파일의 맨 위에 포함됩니다.

  5. F5 키를 눌러 샘플을 빌드하고 실행합니다.

이 샘플 이해

Program.cs에서는 Entity Framework를 사용하여 데이터베이스에서 최신 워크플로 이벤트를 쿼리합니다. TrackedWFVariable 클래스는 Entity Framework 데이터 컨텍스트를 사용하여 연결한 후 최신 이벤트와 연관된 WFEventProperty 행을 검색합니다. 그런 다음 속성이 원본 .NET 형식에 역직렬화됩니다. 이 프로세스는 역직렬화할 개체의 유형에 따라 다릅니다.

다음 유형은 WFEventProperties 보기의 값 열에 간단한 문자열 표현으로 저장됩니다.

  • System.String

  • System.Char

  • System.Boolean

  • System.Int32

  • System.Int16

  • System.Int64

  • System.UInt32

  • System.UInt16

  • System.UInt64

  • System.Single

  • System.Double

  • System.Guid

  • System.DateTimeOffset

  • System.DateTime

문자열 값을 매개 변수로 전달하여 이러한 유형을 정의하는 정적 구문 분석 메서드를 호출하여 이러한 유형을 역직렬화할 수 있습니다. 모든 다른 유형은 WFEventProperties 보기의 ValueBlob 열에 저장된 값이 있으므로 System.Runtime.Serialization.NetDataContractSerializer를 사용하여 역직렬화해야 합니다. 따라서 해당 유형을 역직렬화하도록 선언하는 어셈블리를 로드해야 합니다. 위에 나열된 간단한 유형을 SQL 클라이언트에서 쉽게 쿼리할 수 있도록 개체가 데이터베이스에 이러한 방식으로 저장됩니다.

이 샘플 제거

이 샘플은 아티팩트가 뒤에 남지 않습니다. 원하는 경우 샘플 파일을 삭제할 수 있습니다.

  2011-12-05