Instansaktivering

SQL Workflow Instance Store kör en intern uppgift som regelbundet vaknar och identifierar körningsbara eller aktiverbara arbetsflödesinstanser i beständighetsdatabasen. Om den hittar en körbar instans av ett arbetsflöde meddelar den värden för arbetsflödet, som kan aktivera instansen. Om instanslagringen hittar en aktiverbar arbetsflödesinstans meddelar den en generisk värd som aktiverar en arbetsflödesvärd, som i sin tur kör arbetsflödesinstansen. I följande avsnitt i det här avsnittet beskrivs instansaktiveringsprocessen i detalj.

Identifiera och aktivera körbara arbetsflödesinstanser

SQL Workflow Instance Store anser att en arbetsflödesinstans kan köras om instansen inte är i pausat tillstånd eller i slutfört tillstånd och uppfyller följande villkor:

  • Instansen är olåst och har en aktiv timer som har upphört att gälla.

  • Instansen har ett lås som har gått ut.

  • Instansen är olåst och dess status är Kör.

SQL Workflow Instance Store genererar HasRunnableWorkflowEvent när den hittar en körbar instans. Därefter stoppar SqlWorkflowInstanceStore övervakningen tills den TryLoadRunnableWorkflowCommand anropas en gång i butiken.

En arbetsflödesvärd som har prenumererat på HasRunnableWorkflowEvent och är kapabel att ladda instansen utför TryLoadRunnableWorkflowCommand mot instansarkivet för att läsa in instansen i minnet. En arbetsflödesvärd anses kunna ladda en arbetsflödesinstans om värden och instansen har metadataegenskapen WorkflowServiceType inställd på samma värde.

Identifiera och aktivera aktiverbara arbetsflödesinstanser

En arbetsflödesinstans anses vara aktiverbar om instansen kan köras och det inte finns någon arbetsflödesvärd, som kan läsa in instansen, som körs på datorn. Se Identifiera och aktivera körbara arbetsflödesinstanser ovan för definitionen av en körbar arbetsflödesinstans.

SQL Workflow Instance Store genererar HasActivatableWorkflowEvent när den hittar en aktiverbar arbetsflödesinstans i databasen. Därefter stoppar SqlWorkflowInstanceStore övervakningen tills den QueryActivatableWorkflowsCommand anropas en gång i butiken.

När en allmän värd som har prenumererat på HasActivatableWorkflowEvent får händelsen, kör den QueryActivatableWorkflowsCommand mot instansarkivet för att hämta de aktiveringsparametrar som krävs för att skapa en arbetsflödesvärd. Den generiska värden använder dessa aktiveringsparametrar för att skapa en arbetsflödesvärd som i sin tur laddar in och processar den körningsbara tjänstinstansen.

Allmänna värdar

En allmän värd är en värd med värdet för metadataegenskapen WorkflowServiceType för generiska värdar är inställt på WorkflowServiceType.Any för att indikera att den kan hantera alla arbetsflödestyper. En allmän värd har en XName-parameter med namnet ActivationType.

För närvarande stöder SQL Workflow Instance Store allmänna värdar med värdet för parametern ActivationType inställd på WAS. Om ActivationType inte har angetts till WAS genererar SQL Workflow Instance Store en InstancePersistenceException. Arbetsflödeshanteringstjänsten som levereras med värdfunktionerna i Windows Server AppFabric är en allmän värd som har aktiveringstypen inställd på WAS.

För WAS-aktivering kräver en allmän värd en uppsättning aktiveringsparametrar för att härleda slutpunktsadressen där nya värdar kan aktiveras. Aktiveringsparametrarna för WAS-aktivering är namnet på platsen, sökvägen till programmet i förhållande till platsen och sökvägen till tjänsten i förhållande till programmet. SQL Workflow Instance Store lagrar dessa aktiveringsparametrar under körningen av SaveWorkflowCommand.

Identifieringsperiod för instanser som kan köras

Egenskapen Runnable Instances Detection Period för SQL Workflow Instance Store anger den tidsperiod efter vilken SQL Workflow Instance Store kör en identifieringsuppgift för att identifiera eventuella körbara eller aktiverbara arbetsflödesinstanser i beständighetsdatabasen efter föregående identifieringscykel. Mer information om den här egenskapen finns i Identifieringsperiod för körbara instanser .