다음을 통해 공유


인스턴스 활성화

SQL 워크플로 인스턴스 저장소는 주기적으로 절전 모드를 해제하고 지속성 데이터베이스에서 실행 가능하거나 활성화 가능한 워크플로 인스턴스를 검색하는 내부 작업을 실행합니다. 실행 가능한 워크플로 인스턴스를 찾으면 인스턴스를 활성화할 수 있는 워크플로 호스트에 알릴 수 있습니다. 인스턴스 저장소가 활성화 가능한 워크플로 인스턴스를 찾으면 워크플로 호스트를 활성화하는 일반 호스트에 알립니다. 그러면 워크플로 인스턴스가 실행됩니다. 이 항목의 다음 섹션에서는 인스턴스 활성화 프로세스를 자세히 설명합니다.

실행 가능한 워크플로 인스턴스 검색 및 활성화

SQL 워크플로 인스턴스 저장소는 인스턴스가 일시 중단된 상태 또는 완료된 상태가 아니고 다음 조건을 충족하는 경우 실행 가능한 워크플로 인스턴스를 고려합니다.

  • 인스턴스가 잠금 해제되었고 보류 중이던 타이머가 만료되었습니다.

  • 인스턴스에 만료된 잠금이 있습니다.

  • 인스턴스가 잠금 해제되고 해당 상태가 실행되고 있습니다.

SQL 워크플로 인스턴스 저장소는 실행 가능한 인스턴스를 찾을 때 HasRunnableWorkflowEvent를 발생시킵니다. 그런 다음 SqlWorkflowInstanceStore는 저장소에서 한 번 호출될 때까지 TryLoadRunnableWorkflowCommand 모니터링을 중지합니다.

인스턴스를 구독하고 해당 인스턴스를 로드할 수 있는 워크플로 호스트는 인스턴스 저장소에 대해 HasRunnableWorkflowEvent을(를) 실행하여 인스턴스를 메모리에 로드합니다. 워크플로 호스트는 호스트와 인스턴스에 동일한 값으로 설정된 메타데이터 속성 WorkflowServiceType 이 있는 경우 워크플로 인스턴스를 로드할 수 있는 것으로 간주됩니다.

활성화 가능한 워크플로 인스턴스 검색 및 활성화

인스턴스를 실행할 수 있고 컴퓨터에서 실행 중인 인스턴스를 로드할 수 있는 워크플로 호스트가 없는 경우 워크플로 인스턴스는 활성화 가능한 것으로 간주됩니다. 실행 가능한 워크플로 인스턴스의 정의는 위의 실행 가능한 워크플로 인스턴스 검색 및 활성화를 참조하세요.

SQL 워크플로 인스턴스 저장소는 데이터베이스에서 활성화할 수 있는 워크플로 인스턴스를 찾았을 때 HasActivatableWorkflowEvent 예외를 발생시킵니다. 그런 다음 SqlWorkflowInstanceStore는 저장소에서 한 번 호출될 때까지 QueryActivatableWorkflowsCommand 모니터링을 중지합니다.

HasActivatableWorkflowEvent을 구독한 제네릭 호스트가 이벤트를 받으면, 인스턴스 저장소에서 QueryActivatableWorkflowsCommand을 실행하여 워크플로 호스트를 생성하는 데 필요한 활성화 매개변수를 얻습니다. 제네릭 호스트는 이러한 활성화 매개 변수를 사용하여 워크플로 호스트를 만들고, 이 호스트는 실행 가능한 서비스 인스턴스를 로드하고 실행합니다.

제네릭 호스트

제네릭 호스트는 제네릭 호스트에 대한 메타데이터 속성 WorkflowServiceType 값이 WorkflowServiceType 으로 설정된 호스트입니다. 모든 워크플로 유형을 처리할 수 있음을 나타냅니다. 제네릭 호스트에는 ActivationType이라는 XName 매개 변수가 있습니다.

현재 SQL 워크플로 인스턴스 저장소는 ActivationType 매개 변수 값이 WAS로 설정된 제네릭 호스트를 지원합니다. ActivationType이 WAS로 설정되지 않은 경우 SQL 워크플로 인스턴스 저장소에서 InstancePersistenceException 오류를 발생시킵니다. Windows Server AppFabric의 호스팅 기능과 함께 제공되는 워크플로 관리 서비스는 정품 인증 유형이 WAS로 설정된 일반 호스트입니다.

WAS 활성화의 경우 일반 호스트는 새 호스트를 활성화할 수 있는 엔드포인트 주소를 파생하기 위해 활성화 매개 변수 집합이 필요합니다. WAS 활성화에 대한 활성화 매개 변수는 사이트 이름, 사이트를 기준으로 하는 애플리케이션 경로 및 애플리케이션을 기준으로 하는 서비스의 경로입니다. SQL 워크플로 인스턴스 저장소는 이러한 활성화 매개 변수를 실행하는 동안 저장합니다 SaveWorkflowCommand.

실행 가능한 인스턴스 검색 기간

SQL 워크플로 인스턴스 저장소의 실행 가능한 인스턴스 검색 기간 속성은 SQL 워크플로 인스턴스 저장소가 검색 작업을 실행하여 이전 검색 주기 이후 지속성 데이터베이스에서 실행 가능하거나 활성화 가능한 워크플로 인스턴스를 검색하는 기간을 지정합니다. 이 속성에 대한 자세한 내용은 Runnable 인스턴스 검색 기간을 참조하세요.