인스턴스 저장소는 인스턴스의 논리적 컨테이너입니다. 인스턴스 데이터와 메타데이터가 저장되는 위치입니다. 인스턴스 저장소는 전용 물리적 스토리지를 의미하지 않습니다. 인스턴스 저장소는 SQL Server 데이터베이스의 지속성 정보 또는 메모리의 비지속성 상태 정보를 포함할 수 있습니다. .NET Framework 4.6.1은 워크플로가 SQL Server 2005 또는 SQL Server 2008 데이터베이스에 인스턴스 데이터 및 메타데이터를 유지할 수 있도록 하는 인스턴스 저장소의 구체적인 구현인 SQL Workflow Instance Store와 함께 제공됩니다. 또한 Windows Server App Fabric은 인스턴스 저장소의 구체적인 구현도 제공합니다. 자세한 내용은 Windows Server App Fabric 인스턴스 저장소, 쿼리 및 제어 공급자를 참조하세요.
지속성 API는 호스트와 인스턴스 저장소 간의 인터페이스로, 호스트가 명령 요청(예 LoadWorkflowCommandSaveWorkflowCommand: 및)을 인스턴스 저장소에 보낼 수 있도록 합니다. 이 API의 구체적인 구현을 지속성 공급자라고 합니다. 지속성 공급자는 호스트에서 요청을 수신하고 인스턴스 저장소를 수정합니다.
호스트 및 인스턴스 저장소는 많은 인스턴스 저장소와 함께 호스트를 사용할 수 있도록 플러그형이며, 인스턴스 저장소를 여러 호스트와 함께 사용할 수 있습니다. 인스턴스 저장소와 호스트는 독립적인 수명 주기에 따라 진화할 수 있지만 일반적으로 인스턴스 저장소는 특정 호스트의 사용 패턴에 최적화되어 있습니다. 예를 들어 WorkflowServiceHost 및 SqlWorkflowInstanceStore 는 함께 잘 작동하도록 설계되었습니다. 사용자 고유의 인스턴스 저장소를 만들어 워크플로 서비스 인스턴스의 데이터와 메타데이터를 유지하며 WorkflowServiceHost와 함께 해당 인스턴스 저장소를 사용할 수 있습니다. 예를 들어 워크플로에서 정보를 SQL Server 데이터베이스에 저장하는 대신 Oracle 데이터베이스에 유지할 수 있는 OracleWorkflowInstanceStore를 만들 수 있습니다.
지속형 개체를 수정하는 추가 기능을 사용하여 호스트를 확장해야 하는 것이 일반적입니다. 예를 들어 인스턴스 지속성 시스템에는 워크플로 호스트, "일시 중단" 작업을 지원하는 확장 및 SQL 인스턴스 저장소가 있을 수 있습니다. 워크플로 호스트는 저장 또는 로드와 같은 표준 명령을 보내 인스턴스 저장소에서 워크플로를 저장하거나 로드하거나 워크플로를 인스턴스 저장소에 저장할 수 있습니다. 일시 중단 확장은 일시 중단된 워크플로 인스턴스를 로드할 수 없도록 워크플로 인스턴스를 저장하고 로드하기 위한 명령에 의미 체계를 추가할 수 있습니다. SQL 인스턴스 저장소의 지속성 공급자는 워크플로 인스턴스를 저장 및 로드하기 위한 명령을 이해하고 SQL Server 데이터베이스의 영구 개체 테이블을 변경하는 적절한 저장 프로시저를 호출하여 명령을 구현합니다.
호스트는 인스턴스 저장소 내에서 인스턴스 소유자 역할을 합니다. 호스트는 둘 이상의 인스턴스 저장소를 동시에 사용하는 둘 이상의 인스턴스 소유자 역할을 할 수 있습니다. 호스트는 인스턴스와 연결된 인스턴스 키에 대한 GUID를 제공합니다. 인스턴스 키는 인스턴스를 식별하는 고유한 별칭입니다. 지속성 시스템은 호스트에서 요청한 명령을 실행할 때 인스턴스 소유자 정보를 만들고, 업데이트하고, 삭제합니다.
다음 목록에는 호스트와 인스턴스 저장소의 상호 작용에 관련된 중요한 단계가 포함되어 있습니다.
지속성 공급자에서 InstanceStore 를 가져옵니다.
CreateInstanceHandle에서 메서드를 호출하여 인스턴스에 대한 핸들을 얻습니다.
Execute에서 메서드를 호출하여 인스턴스 핸들에 명령을 실행합니다.
InstanceView에서 반환된 명령을 검사하여 명령의 결과를 확인합니다.
.NET