WorkflowCommitWorkBatchService Class
Allows custom logic for the commitment of work batches.
System.Workflow.Runtime.Hosting::WorkflowRuntimeService
System.Workflow.Runtime.Hosting::WorkflowCommitWorkBatchService
System.Workflow.Runtime.Hosting::DefaultWorkflowCommitWorkBatchService
System.Workflow.Runtime.Hosting::SharedConnectionWorkflowCommitWorkBatchService
Assembly: System.Workflow.Runtime (in System.Workflow.Runtime.dll)
The WorkflowCommitWorkBatchService type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | WorkflowCommitWorkBatchService | When implemented in a derived class, initializes a new instance of the WorkflowCommitWorkBatchService class. |
| Name | Description | |
|---|---|---|
![]() | Runtime | Gets the WorkflowRuntime for this service. (Inherited from WorkflowRuntimeService.) |
![]() | State | Gets the state of the WorkflowRuntimeService. (Inherited from WorkflowRuntimeService.) |
| Name | Description | |
|---|---|---|
![]() | CommitWorkBatch | Called to commit the work batch. |
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | OnStarted | When overridden in a derived class, represents the method that will be called when the workflow runtime engine raises the WorkflowRuntime::Started event. (Inherited from WorkflowRuntimeService.) |
![]() | OnStopped | When overridden in a derived class, represents the method that will be called when the workflow runtime engine raises the WorkflowRuntime::Stopped event. (Inherited from WorkflowRuntimeService.) |
![]() | RaiseServicesExceptionNotHandledEvent | Raises the WorkflowRuntime::ServicesExceptionNotHandled event. (Inherited from WorkflowRuntimeService.) |
![]() | Start | When overridden in a derived class, starts the service and changes the State to Starting. (Inherited from WorkflowRuntimeService.) |
![]() | Stop | When overridden in a derived class, stops the service and changes the State to Stopping. (Inherited from WorkflowRuntimeService.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
When a work batch is committed the runtime calls into the WorkflowCommitWorkBatchService and gives it a delegate to call to do the actual committing of the work batch. The runtime still has the primary responsibility of committing the work batch but allows the WorkflowCommitWorkBatchService to insert itself in the process for customization around the commit process.
This process allows custom error handling logic. If the WorkflowCommitWorkBatchService owns the transaction, which is the case when the Transaction::Current property returns nullptr therefore necessitating the need to create a new ambient transaction, it is allowed to call the delegate more than once, creating a new transaction for each call. The most common case for this for example is to handle intermittent network problems or SQL cluster failovers. If the call to the WorkflowCommitWorkBatchService::CommitWorkBatchCallback throws an exception WorkflowCommitWorkBatchService can catch this exception, start a new transaction and call the delegate again. This gives a level of resilience to workflow instance execution that otherwise would cause workflows to terminate.
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
