다음을 통해 공유


워크플로 유지

워크플로 지속성은 프로세스 또는 컴퓨터 정보에 독립적인 영구 워크플로 인스턴스 상태 캡처입니다. 이 작업은 시스템 오류가 발생한 경우에 워크플로 인스턴스에 대한 잘 알려진 복구 지점을 제공하거나, 현재 작업 중이 아닌 워크플로 인스턴스를 언로드하여 메모리를 보존하거나, 워크플로 인스턴스의 상태를 서버 팜의 한 노드에서 다른 노드로 이동하기 위해 수행합니다.

지속성은 프로세스의 신속성, 확장성, 오류 복구, 효율적인 메모리 관리를 가능하게 해줍니다. 지속성 프로세스는 유지 지점을 식별하고, 저장할 데이터를 수집하며, 마지막으로 지속성 공급자에게 실제 데이터 스토리지를 위임하는 과정으로 구성됩니다.

워크플로에 지속성을 사용 설정하려면 방법: 워크플로 및 워크플로 서비스에 지속성 사용에 설명된 대로 인스턴스 저장소를 WorkflowApplication 또는 WorkflowServiceHost와 연결해야 합니다. WorkflowApplicationWorkflowServiceHost는 연결된 인스턴스 저장소를 사용하여 지속성 저장소에 워크플로 인스턴스를 유지하고 지속성 저장소에 저장된 워크플로 인스턴스 데이터를 기반으로 워크플로 인스턴스를 메모리에 로드합니다.

.NET Framework 4.6.1에는 워크플로 인스턴스에 대한 데이터 및 메타데이터를 SQL Server 2005 또는 SQL Server 2008 데이터베이스에 유지할 수 있는 SqlWorkflowInstanceStore 클래스가 함께 제공됩니다. 자세한 내용은 SQL 워크플로 인스턴스 저장소를 참조하세요.

워크플로 인스턴스 관련 정보와 함께 애플리케이션별 데이터를 저장하고 로드하려면 PersistenceParticipant 클래스를 확장하는 지속성 참석자를 만들 수 있습니다. 지속성 참석자는 지속성 프로세스에 참여하여 serialize 가능한 사용자 지정 데이터를 지속성 저장소에 저장하고, 인스턴스 저장소의 데이터를 메모리로 로드하며, 지속성 트랜잭션에서 추가 논리를 수행합니다. 자세한 내용은 지속성 참가자를 참조하세요.

Windows Server AppFabric은 지속성의 구성 프로세스를 단순화합니다. 자세한 내용은 Windows Server App Fabric의 지속성 개념을 참조하세요.

암시적 유지 지점

다음 목록에는 인스턴스 저장소가 워크플로에 연결되어 있을 때 워크플로가 유지되는 조건에 대한 예제가 포함되어 있습니다.

  • TransactionScope 작업이 완료되거나 TransactedReceiveScope 작업이 완료된 경우

  • 워크플로 인스턴스가 유휴 상태가 되고 워크플로 호스트에 대한 WorkflowIdleBehavior가 설정된 경우. 예를 들어 메시징 작업 또는 Delay 작업을 사용하는 경우에 이런 상태가 됩니다.

  • WorkflowApplication이 유휴 상태가 되고 애플리케이션의 PersistableIdle 속성이 PersistableIdleAction.Persist로 설정된 경우

  • 워크플로 인스턴스를 유지하거나 언로드하도록 호스트 애플리케이션에 지시할 경우

  • 워크플로 인스턴스가 종료되거나 완료되는 경우

  • Persist 작업을 실행할 경우

  • 이전 버전의 Windows Workflow Foundation을 사용하여 개발된 워크플로 인스턴스에서 상호 운용 가능한 방식으로 실행되는 동안 유지 지점을 발견한 경우

섹션 내용