Freigeben über


Verwenden von SharedConnectionWorkflowCommitWorkBatchService

Die WorkflowRuntime-Klasse erstellt beim Starten des Workflow-Laufzeitmoduls ein DefaultWorkflowCommitWorkBatchService-Objekt, wenn kein anderer WorkflowCommitWorkBatch-Dienst hinzugefügt wurde. Sie können diesen Dienst im Workflow verwenden, um für Datenintegrität benötigte Arbeitsbatches zu unterstützen.

Auch der SharedConnectionWorkflowCommitWorkBatchService-Dienst kann verwendet werden. Dieser Dienst wird für Datenbanktransaktionen verwendet, die eine freigegebene Verbindung zwischen verschiedenen Objekten verwenden. Soll anstelle des DefaultWorkflowCommitWorkBatchService-Diensts in der WorkflowRuntime-Instanz der SharedConnectionWorkflowCommitWorkBatchService-Dienst verwendet werden, verwenden Sie die gemäß dem folgenden Beispiel die AddService-Methode. Der Parameter für den SharedConnectionWorkflowCommitWorkBatchService-Konstruktor ist die Datenbankverbindungszeichenfolge.

Hinweis

Wenn der von SharedConnectionWorkflowCommitWorkBatchService verwendete SQL Server nicht aktiviert ist, z. B. aufgrund eines SQL-Clusterfailovers oder zeitweiligen Netzwerkfehlers, wird der Commit-Prozess vom SharedConnectionWorkflowCommitWorkBatchService-Dienst mindestens 15 bis 20 Mal wiederholt, bevor ein ServicesExceptionNotHandled-Ereignis ausgelöst wird. Dieses Verhalten tritt jedoch nur auf, wenn die EnableRetries-Eigenschaft des SharedConnectionWorkflowCommitWorkBatchService-Diensts auf true festgelegt wird.

static void Main(string[] args)
{
    string connectionString = " Initial Catalog=WorkflowDataStore;Data Source=localhost;Integrated Security=SSPI;";

    WorkflowRuntime workflowRuntime = new WorkflowRuntime();

    workflowRuntime.AddService( new SharedConnectionWorkflowCommitWorkBatchService(connectionString));
    workflowRuntime.StartRuntime();
    
    // …

    workflowRuntime.StopRuntime();
}
Shared Sub Main(ByVal args() As String) 
    Dim connectionString As String = " Initial Catalog=WorkflowDataStore;Data Source=localhost;Integrated Security=SSPI;"
    
    Dim workflowRuntime As New WorkflowRuntime()
    
    workflowRuntime.AddService(New SharedConnectionWorkflowCommitWorkBatchService(connectionString))
    workflowRuntime.StartRuntime()
    
    ' ...
    workflowRuntime.StopRuntime()
End Sub 'Main

Verwenden einer Anwendungskonfigurationsdatei

Sie können auch eine Anwendungskonfigurationsdatei verwenden, um das SharedConnectionWorkflowCommitWorkBatchService-Objekt zu erstellen. In diesem Fall werden die Verbindungszeichenfolgeninformationen dem CommonParameters-Abschnitt der Datei app.config hinzugefügt. Im folgenden Beispiel wird eine Anwendungskonfigurationsdatei gezeigt, von der der SharedConnectionWorkflowCommitWorkBatchService-Dienst verwendet wird.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section name="WorkflowServiceContainer" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </configSections>
    <WorkflowServiceContainer Name="Container Name" UnloadOnIdle="true">
        <CommonParameters>
            <add name="ConnectionString" value="Initial Catalog=WorkFlowStore;Data Source=localhost;Integrated Security=SSPI;" />
        </CommonParameters>
        <Services>
            <add type="System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService, System.Workflow.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            <add type="System.Workflow.Runtime.Hosting.SharedConnectionWorkflowTransactionService, System.Workflow.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            <add type="System.Workflow.Runtime.Tracking.SqlTrackingService, System.Workflow.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            <add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService, System.Workflow.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        </Services>
    </WorkflowServiceContainer>
    <system.diagnostics>
    </system.diagnostics>
</configuration>

Siehe auch

Referenz

DefaultWorkflowCommitWorkBatchService
SharedConnectionWorkflowCommitWorkBatchService

Konzepte

Übersicht über Dienste
Windows Workflow CommitWorkBatch-Dienste

Weitere Ressourcen

Using WorkflowCommitWorkBatch Service Sample

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.