Sdílet prostřednictvím


Aktivace instance

Úložiště instancí pracovního postupu SQL spouští interní úlohu, která se pravidelně probudí a detekuje spustitelné nebo aktivovatelné instance pracovních postupů v databázi trvalosti. Pokud najde spustitelnou instanci pracovního postupu, upozorní hostitele pracovního postupu, který je schopen aktivovat instanci. Pokud úložiště instancí najde aktivovatelnou instanci pracovního postupu, upozorní obecného hostitele, který aktivuje hostitele pracovního postupu, který následně spustí instanci pracovního postupu. Následující části v tomto tématu podrobně popisují proces aktivace instance.

Zjišťování a aktivace instancí spustitelných pracovních postupů

Úložiště instancí pracovního postupu SQL považuje instanci pracovního postupu za spuštěnou , pokud instance není v pozastaveném stavu nebo dokončeném stavu a splňuje následující podmínky:

  • Instance je odemknutá a má čekající časovač, jehož platnost vypršela.

  • Instance má zámek, jehož platnost vypršela.

  • Instance je odemknutá a její stav probíhá.

Úložiště instancí pracovního postupu SQL vyvolá HasRunnableWorkflowEvent , když najde spustitelnou instanci. Potom SqlWorkflowInstanceStore zastaví monitorování, dokud TryLoadRunnableWorkflowCommand nebude volána jednou v úložišti.

Hostitel pracovního postupu, který se přihlásil k odběru HasRunnableWorkflowEvent a schopný načíst instanci, spustí TryLoadRunnableWorkflowCommand proti úložišti instancí, aby se instance načetla do paměti. Hostitel pracovního postupu je považován za schopný načíst instanci pracovního postupu, pokud hostitel a instance mají vlastnost metadat WorkflowServiceType nastavena na stejnou hodnotu.

Zjišťování a aktivace aktivovatelných instancí pracovních postupů

Instance pracovního postupu se považuje za aktivovatelnou , pokud je instance spuštěná a na počítači není spuštěný žádný hostitel pracovního postupu, který by mohl načíst instanci. Informace o definici instance spustitelného pracovního postupu najdete v části Detekce a aktivace instancí spustitelného pracovního postupu výše.

Úložiště instancí pracovního postupu SQL vyvolá HasActivatableWorkflowEvent , když v databázi najde aktivovatelnou instanci pracovního postupu. Potom SqlWorkflowInstanceStore zastaví monitorování, dokud QueryActivatableWorkflowsCommand nebude volána jednou v úložišti.

Když se k odběru události přihlásí obecný hostitel, který se přihlásil k odběru HasActivatableWorkflowEvent události, spustí QueryActivatableWorkflowsCommand proti úložišti instancí, aby získal aktivační parametry potřebné k vytvoření hostitele pracovního postupu. Obecný hostitel používá tyto aktivační parametry k vytvoření hostitele pracovního postupu, který následně načte a spustí spustitelnou instanci služby.

Obecná hostitelé

Obecný hostitel je hostitel s hodnotou vlastnosti metadat WorkflowServiceType pro obecné hostitele je nastaven na WorkflowServiceType.Any označující, že může zpracovat jakýkoli typ pracovního postupu. Obecný hostitel má parametr XName s názvem ActivationType.

Úložiště instancí pracovního postupu SQL v současné době podporuje obecné hostitele s hodnotou parametru ActivationType nastavenou na WAS. Pokud aktivační typ není nastaven na WAS, úložiště instancí pracovního postupu SQL vyvolá výjimku InstancePersistenceException. Služba správy pracovních postupů, která se dodává s hostitelskými funkcemi technologie Windows Server AppFabric, je obecný hostitel s typem aktivace nastaveným na WAS.

V případě aktivace WAS vyžaduje obecný hostitel sadu parametrů aktivace, aby odvozoval adresu koncového bodu, na které mohou být aktivováni noví hostitelé. Aktivační parametry pro aktivaci WAS jsou název lokality, cesta k aplikaci vzhledem k lokalitě a cesta ke službě vzhledem k aplikaci. Úložiště instancí pracovního postupu SQL ukládá tyto aktivační parametry během provádění .SaveWorkflowCommand

Interval detekce spustitelných instancí

Vlastnost Období detekce spustitelných instancí úložiště instancí pracovního postupu SQL určuje časové období, po kterém úložiště instancí pracovního postupu SQL spouští úlohu detekce, která detekuje všechny spuštěné nebo aktivovatelné instance pracovního postupu v databázi trvalosti po předchozím cyklu detekce. Další podrobnosti o této vlastnosti najdete v tématu Období detekce spustitelných instancí.