TrackingService 클래스

정의

경고

이 API는 현재 사용되지 않습니다.

추적 서비스와 런타임 추적 인프라 간의 기본 인터페이스를 정의합니다.Provides the basic interface between a tracking service and the run-time tracking infrastructure.

public ref class TrackingService abstract : System::Workflow::Runtime::Hosting::WorkflowRuntimeService
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public abstract class TrackingService : System.Workflow.Runtime.Hosting.WorkflowRuntimeService
type TrackingService = class
    inherit WorkflowRuntimeService
Public MustInherit Class TrackingService
Inherits WorkflowRuntimeService
상속
TrackingService
파생
특성

설명

참고

이 자료에서는 더 이상 사용되지 않는 형식과 네임스페이스에 대해 설명합니다.This material discusses types and namespaces that are obsolete. 자세한 내용은 Deprecated Types in Windows Workflow Foundation 4.5(Windows Workflow Foundation 4.5에서 사용되지 않는 형식)를 참조하세요.For more information, see Deprecated Types in Windows Workflow Foundation 4.5.

추적 서비스는 추적 채널과 추적 프로필을 워크플로 런타임 엔진에 제공합니다.A tracking service is responsible for supplying tracking channels and tracking profiles to the workflow run-time engine. 워크플로 런타임 엔진은 TrackingChannel이 있는 각 워크플로 인스턴스에 대한 추적 서비스에서 하나의 TrackingProfile을 요청합니다.The workflow run-time engine requests one TrackingChannel from a tracking service for each workflow instance for which it has a TrackingProfile. 워크플로 런타임 엔진은 이 TrackingChannel을 사용하여 해당 워크플로 인스턴스와 연결된 추적 레코드를 보냅니다.The workflow run-time engine uses this TrackingChannel to send tracking records associated with that workflow instance. TrackingProfile은 런타임 추적 인프라에서 추적 레코드를 보내야 하는 추적 이벤트 집합을 지정하는 추적 지점을 포함합니다.A TrackingProfile contains track points that specify a set of tracking events for which the run-time tracking infrastructure should send tracking records. TrackingProfile은 추적 이벤트 중 하나가 발생할 때 워크플로 인스턴스에서 추출할 데이터를 지정할 수도 있습니다.A TrackingProfile may also specify data to be extracted from the workflow instance when one of these tracking events occurs.

런타임 추적 인프라는 TrackingProfile을 사용하여 워크플로 인스턴스에서 내보내는 추적 이벤트를 필터링합니다.The run-time tracking infrastructure uses a TrackingProfile to filter tracking events emitted by a workflow instance. TrackingProfile의 추적 지점과 일치하는 추적 이벤트를 내보낼 때 런타임 추적 인프라는 TrackingProfile에 지정된 모든 데이터를 워크플로 인스턴스에서 추출하고 이 데이터와 추적 이벤트 정보를 추적 레코드에 캡슐화합니다.When a tracking event is emitted that matches a track point in the TrackingProfile, the run-time tracking infrastructure extracts any data specified in the TrackingProfile from the workflow instance and encapsulates this data and information about the tracking event in a tracking record. 이 추적 레코드는 워크플로 인스턴스와 연결된 TrackingChannel을 통해 전송됩니다.This tracking record is then sent over the TrackingChannel associated with the workflow instance. 추적 레코드는 세 종류 중 하나일 수 있습니다.A tracking record may be one of the following kinds:

ActivityTrackingRecord

UserTrackingRecord

WorkflowTrackingRecord

호스트 애플리케이션은 선택한 임의의 방식으로 추적 레코드를 사용할 수 있습니다.The host application can use the tracking record in any way that it chooses. 예를 들어 호스트 애플리케이션은 추적 정보를 데이터베이스에 저장하고 이를 사용하여 복잡한 사용자 인터페이스를 구현하거나, 이 정보를 사용하여 관리자에게 일부 작업이 필요한 상태를 알릴 수 있습니다.For example, the host application may store the tracking information in a database and use it to implement a sophisticated user interface, or it may use the information to inform an administrator of a condition that requires some action. WorkflowRuntime.AddService를 호출하거나 애플리케이션 구성 파일에 해당 항목을 포함하여 워크플로 런타임 엔진에 추적 서비스를 등록할 수 있습니다.You can register a tracking service with the workflow run-time engine by calling WorkflowRuntime.AddService or by including the appropriate entry in the application configuration file.

모든 추적 서비스는 TrackingService 추상 클래스에서 상속되어야 합니다.All tracking services must inherit from the TrackingService abstract class. 이 클래스는 추적 서비스와 런타임 추적 인프라 간의 기본 인터페이스를 정의합니다.This class defines the basic interface between a tracking service and the run-time tracking infrastructure. 워크플로 런타임 엔진은 오버로드된 TrackingProfile 메서드 또는 Type 메서드 중 하나를 호출하여 특정 워크플로 인스턴스나 워크플로 GetProfile에 대한 TryGetProfile을 요청합니다.The workflow run-time engine requests a TrackingProfile for a specific workflow instance or workflow Type by calling one of the overloaded GetProfile methods or the TryGetProfile method. 워크플로 런타임 엔진은 GetTrackingChannel을 호출하여 TrackingChannel을 요청합니다.The workflow run-time engine calls GetTrackingChannel to request a TrackingChannel.

워크플로 런타임 엔진은 워크플로 인스턴스를 만들거나 지속성 저장소에서 로드할 때마다 GetProfileTryGetProfile 메서드를 호출합니다.The workflow tracking runtime calls the GetProfile and TryGetProfile methods whenever a workflow instance is created or loaded from the persistence store. 이러한 호출과 연결된 오버헤드로 인해 추적 서비스의 비용이 증가할 수 있습니다(예: 많은 데이터베이스 호출).The overhead associated with these calls can be costly to the tracking service (many database calls, for example). 추적 서비스에 IProfileNotification 인터페이스를 구현하여 이러한 호출 기반 메커니즘을 우회하고 이벤트를 사용하여 TrackingProfile 변경 내용을 워크플로 런타임 엔진에 알릴 수 있습니다.You can implement the IProfileNotification interface in your tracking service to circumvent this call-based mechanism and use events to notify the workflow runtime engine of changes to a TrackingProfile. IProfileNotification 인터페이스를 구현하는 추적 서비스의 경우 워크플로 런타임 엔진은 ProfileUpdatedProfileRemoved 이벤트를 구독합니다.For tracking services that implement the IProfileNotification interface, the workflow run-time engine subscribes to the ProfileUpdated and ProfileRemoved events. 추적 서비스는 추적 프로필 중 하나가 변경될 때 해당 이벤트를 발생시킬 수 있습니다.Your tracking service can raise the appropriate event when a change to one of its tracking profiles occurs. SqlTrackingService 클래스는 이 인터페이스를 구현합니다.The SqlTrackingService class implements this interface.

워크플로 런타임 엔진은 TryReloadProfile 메서드를 호출하여 호스트나 서비스가 워크플로 인스턴스에서 TrackingProfile를 명시적으로 호출한 결과 ReloadTrackingProfiles이 업데이트 또는 제거되었는지 테스트합니다.The workflow run-time engine calls the TryReloadProfile method to test whether a TrackingProfile has been updated or removed as a result of an explicit call by a host or a service to ReloadTrackingProfiles on a workflow instance. 이 프로세스를 통해 호스트나 서비스는 특정 워크플로 인스턴스에 사용되는 추적 프로필을 동적으로 변경할 수 있습니다.This process enables a host or service to dynamically change the tracking profile that is being used for a specific workflow instance.

구현자 참고

상속- TrackingService, 멤버를 재정의 해야 합니다. GetProfile(Guid)- When you inherit from TrackingService, you must override the following members: GetProfile(Guid)

생성자

TrackingService()

파생 클래스에서 구현되는 경우에는 TrackingService 클래스의 새 인스턴스를 초기화합니다.When implemented in a derived class, initializes a new instance of the TrackingService class.

속성

Runtime

이 서비스에 대한 WorkflowRuntime을 가져옵니다.Gets the WorkflowRuntime for this service.

(다음에서 상속됨 WorkflowRuntimeService)
State

WorkflowRuntimeService의 상태를 가져옵니다.Gets the state of the WorkflowRuntimeService.

(다음에서 상속됨 WorkflowRuntimeService)

메서드

Equals(Object)

지정한 개체가 현재 개체와 같은지를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetProfile(Guid)

파생 클래스에서 재정의되어야 하며, 구현되는 경우 지정된 워크플로 인스턴스에 대한 추적 프로필을 반환합니다.Must be overridden in the derived class, and when implemented, returns the tracking profile for the specified workflow instance.

GetProfile(Type, Version)

파생 클래스에서 재정의되어야 하며, 구현되는 경우 지정된 워크플로 Type에 대한 버전으로 정규화된 추적 프로필을 반환합니다.Must be overridden in the derived class, and when implemented, returns the tracking profile, qualified by version, for the specified workflow Type.

GetTrackingChannel(TrackingParameters)

파생 클래스에서 재정의되어야 하며, 구현되는 경우 런타임 추적 인프라가 추적 레코드를 추적 서비스로 보내는 데 사용하는 채널을 반환합니다.Must be overridden in the derived class, and when implemented, returns the channel that the run-time tracking infrastructure uses to send tracking records to the tracking service.

GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
OnStarted()

파생 클래스에서 재정의되는 경우 워크플로 런타임 엔진이 Started 이벤트를 발생시킬 때 호출되는 메서드를 나타냅니다.When overridden in a derived class, represents the method that will be called when the workflow runtime engine raises the Started event.

(다음에서 상속됨 WorkflowRuntimeService)
OnStopped()

파생 클래스에서 재정의되는 경우 워크플로 런타임 엔진이 Stopped 이벤트를 발생시킬 때 호출되는 메서드를 나타냅니다.When overridden in a derived class, represents the method that will be called when the workflow runtime engine raises the Stopped event.

(다음에서 상속됨 WorkflowRuntimeService)
RaiseServicesExceptionNotHandledEvent(Exception, Guid)

ServicesExceptionNotHandled 이벤트를 발생시킵니다.Raises the ServicesExceptionNotHandled event.

(다음에서 상속됨 WorkflowRuntimeService)
Start()

파생 클래스에서 재정의되는 경우 서비스를 시작하고 StateStarting으로 변경합니다.When overridden in a derived class, starts the service and changes the State to Starting.

(다음에서 상속됨 WorkflowRuntimeService)
Stop()

파생 클래스에서 재정의되는 경우 서비스를 중지하고 StateStopping으로 변경합니다.When overridden in a derived class, stops the service and changes the State to Stopping.

(다음에서 상속됨 WorkflowRuntimeService)
ToString()

현재 개체를 나타내는 string을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)
TryGetProfile(Type, TrackingProfile)

파생 클래스에서 재정의되어야 하며, 구현되는 경우 지정된 워크플로 유형에 대한 추적 프로필(사용 가능한 경우)을 검색합니다.Must be overridden in the derived class, and when implemented, retrieves the tracking profile for the specified workflow type if one is available.

TryReloadProfile(Type, Guid, TrackingProfile)

파생 클래스에서 재정의되어야 하며, 구현되는 경우 추적 프로필이 마지막으로 로드된 이후 변경되었으면 지정된 워크플로 인스턴스에 대한 새 추적 프로필을 검색합니다.Must be overridden in the derived class, and when implemented, retrieves a new tracking profile for the specified workflow instance if the tracking profile has changed since it was last loaded.

적용 대상

추가 정보