Partager une connection entre le service de persistante et le service de tracking
Il est possible de partager la même connection entre plusieurs services en changeant le mode de transactions. Par défaut, celui-ci est de type « DefaultWorkflowTransactionService », en le remplaçant par « SharedConnectionWorkflowTransactionService » le service de transaction sera activé pour l’ensemble des services, ceux-ci utilisant de ce fait la même source de données.
<WorkflowRuntime Name="WorkflowRuntime">
<CommonParameters>
<add name="ConnectionString" value="Data Source=.\SQLEXPRESS;AttachDbFilename="C:\\WorkflowDB.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True" />
</CommonParameters>
<Services>
<add type="System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add type="System.Workflow.Runtime.Hosting.SharedConnectionWorkflowTransactionService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" UnloadOnIdle="true"
LoadIntervalSeconds="5" />
<add type="System.Workflow.Runtime.Tracking.SqlTrackingService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</Services>
</WorkflowRuntime>
Dans cet exemple de fichier de configuration, la connection sera partagée entre le service de persistance et le service de tracking, afin d’assurer l’efficacité du service de transaction.