다음을 통해 공유


WorkflowPersistenceService 클래스

정의

주의

The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*

모든 지속성 서비스가 파생되는 추상 기본 클래스입니다.

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

설명

참고

이 자료에서는 더 이상 사용되지 않는 형식과 네임스페이스에 대해 설명합니다. 자세한 내용은 Deprecated Types in Windows Workflow Foundation 4.5(Windows Workflow Foundation 4.5에서 사용되지 않는 형식)를 참조하세요.

워크플로가 실행되는 동안 특정 조건이 발생하면 워크플로 런타임 엔진이 워크플로 인스턴스에 대한 상태 정보를 유지합니다. 예를 들어 원자성 트랜잭션이 완료될 때, 워크플로 인스턴스가 유휴 상태가 될 때, 호스트가 워크플로 인스턴스에서 WorkflowInstance.Unload를 호출할 때 또는 워크플로 인스턴스가 종료되거나 완료될 때 지속성이 발생할 수 있습니다. 워크플로 런타임 엔진 의미 체계에서 지속성이 발생해야 함을 나타내는 경우 워크플로 런타임 엔진은 지속성 서비스가 제공하는 메서드를 호출하여 워크플로 인스턴스에 대한 상태 정보를 저장합니다. 마찬가지로 워크플로 런타임 엔진은 이전에 유지된 워크플로 인스턴스를 복원해야 하는 경우 지속성 서비스가 제공한 메서드를 호출하여 이 상태 정보를 로드합니다. 워크플로 런타임 엔진은 지속성 수행 시기와 관련해서 모든 의미 체계를 처리합니다. 지속성 서비스는 실제로 워크플로 상태 정보를 데이터 저장소로 저장 및 로드하거나 데이터 저장소로부터 저장 및 로드하는 작업을 처리합니다.

WorkflowPersistenceService 클래스에서 클래스를 파생시켜 유지 서비스를 만들 수 있습니다. AddService를 호출하거나 애플리케이션 구성 파일에 해당 항목을 만들어 워크플로 런타임 엔진에 유지 서비스를 추가할 수 있습니다. WorkflowRuntime에 하나의 지속성 서비스만 포함되어야 합니다. Windows Workflow Foundation에서는 있는 그대로 사용하거나 확장할 수 있는 기본 유지 서비스인 SqlWorkflowPersistenceService 클래스를 제공합니다.

워크플로 런타임 엔진에는 다른 프로세스에서 실행되는 지속성 서비스가 단일 데이터 저장소에 액세스할 수 있는 환경에서 사용할 워크플로 상태 정보를 잠그기 위한 의미 체계가 있습니다. WorkflowPersistenceService 클래스는 이와 같은 워크플로 런타임 엔진의 기능을 지원하기 위하여 워크플로 인스턴스의 상태 정보를 데이터 저장소에서 잠글지 여부를 지정하는 SaveWorkflowInstanceState에 대한 매개 변수를 제공하고 이전에 잠긴 워크플로 상태 정보를 잠금 해제하는 메서드 UnlockWorkflowInstanceState를 제공합니다. 잠금을 구현하는 유지 서비스에서 LoadWorkflowInstanceState를 호출하면 워크플로 인스턴스에 대한 상태 정보가 잠겨야 합니다.

지속성 서비스는 데이터 저장소에 상태 정보를 저장하지 못하거나 데이터 저장소에서 상태 정보를 로드하지 못할 경우 PersistenceException을 throw해야 합니다. 워크플로 런타임 엔진에서는 이러한 동작을 예상합니다.

영속 저장소를 사용하여 워크플로 상태 정보를 저장하는 서비스에 대해 일괄 처리 메커니즘이 제공됩니다. 이 경우 유지 서비스에서 사용하는 영속 저장소와 워크플로 런타임 엔진의 내부 상태 간에 일관성을 유지하는 것이 중요합니다. IPendingWork 인터페이스에서 정의한 기능을 서비스에 추가한 다음 데이터 저장소에 대한 변경 내용을 작업 항목으로 WorkflowCommitWorkBatchService에 추가하여 WorkBatch가 제공하는 워크플로 트랜잭션 일괄 처리에 참여할 수 있습니다. 영속 저장소 자체에서 IEnlistmentNotification 인터페이스를 구현해야 하므로 트랜잭션 롤백 시에도 워크플로 정보가 잘못 유지되지 않습니다. 자세한 내용은 SaveCompletedContextActivity 또는 SaveWorkflowInstanceState를 참조하세요.

생성자

WorkflowPersistenceService()
사용되지 않음.

파생 클래스에서 구현되는 경우에는 WorkflowPersistenceService 클래스의 새 인스턴스를 초기화합니다.

속성

Runtime
사용되지 않음.

이 서비스에 대한 WorkflowRuntime을 가져옵니다.

(다음에서 상속됨 WorkflowRuntimeService)
State
사용되지 않음.

WorkflowRuntimeService의 상태를 가져옵니다.

(다음에서 상속됨 WorkflowRuntimeService)

메서드

Equals(Object)
사용되지 않음.

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetDefaultSerializedForm(Activity)
사용되지 않음.

Activity의 serialize된 기본 형식을 검색합니다.

GetHashCode()
사용되지 않음.

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetIsBlocked(Activity)
사용되지 않음.

지정된 활동의 차단 여부를 나타냅니다.

GetSuspendOrTerminateInfo(Activity)
사용되지 않음.

지정된 활동의 종료 또는 일시 중단 정보를 검색합니다.

GetType()
사용되지 않음.

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
GetWorkflowStatus(Activity)
사용되지 않음.

워크플로의 상태를 검색합니다.

LoadCompletedContextActivity(Guid, Activity)
사용되지 않음.

파생 클래스에서 구현되는 경우 지정한 완료된 범위를 다시 메모리에 로드합니다.

LoadWorkflowInstanceState(Guid)
사용되지 않음.

파생 클래스에서 구현되는 경우 지정된 워크플로 인스턴스 상태를 다시 메모리에 로드합니다.

MemberwiseClone()
사용되지 않음.

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
OnStarted()
사용되지 않음.

파생 클래스에서 재정의되는 경우 워크플로 런타임 엔진이 Started 이벤트를 발생시킬 때 호출되는 메서드를 나타냅니다.

(다음에서 상속됨 WorkflowRuntimeService)
OnStopped()
사용되지 않음.

파생 클래스에서 재정의되는 경우 워크플로 런타임 엔진이 Stopped 이벤트를 발생시킬 때 호출되는 메서드를 나타냅니다.

(다음에서 상속됨 WorkflowRuntimeService)
RaiseServicesExceptionNotHandledEvent(Exception, Guid)
사용되지 않음.

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

(다음에서 상속됨 WorkflowRuntimeService)
RestoreFromDefaultSerializedForm(Byte[], Activity)
사용되지 않음.

serialize된 형식에서 Activity를 복원합니다.

SaveCompletedContextActivity(Activity)
사용되지 않음.

파생 클래스에서 구현되는 경우 지정한 완료된 범위를 데이터 저장소에 저장합니다.

SaveWorkflowInstanceState(Activity, Boolean)
사용되지 않음.

파생 클래스에서 구현되는 경우 워크플로 인스턴스 상태를 데이터 저장소에 저장합니다.

Start()
사용되지 않음.

파생 클래스에서 재정의되는 경우 서비스를 시작하고 StateStarting으로 변경합니다.

(다음에서 상속됨 WorkflowRuntimeService)
Stop()
사용되지 않음.

파생 클래스에서 재정의되는 경우 서비스를 중지하고 StateStopping으로 변경합니다.

(다음에서 상속됨 WorkflowRuntimeService)
ToString()
사용되지 않음.

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
UnloadOnIdle(Activity)
사용되지 않음.

워크플로가 유휴 상태일 때 언로드할지 여부를 결정합니다.

UnlockWorkflowInstanceState(Activity)
사용되지 않음.

파생 클래스에서 재정의되는 경우 워크플로 인스턴스 상태를 잠금 해제합니다.

적용 대상