WorkflowCommitWorkBatchService Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Caution
The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*
Allows custom logic for the commitment of work batches.
public ref class WorkflowCommitWorkBatchService abstract : System::Workflow::Runtime::Hosting::WorkflowRuntimeService
public abstract class WorkflowCommitWorkBatchService : System.Workflow.Runtime.Hosting.WorkflowRuntimeService
[System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public abstract class WorkflowCommitWorkBatchService : System.Workflow.Runtime.Hosting.WorkflowRuntimeService
type WorkflowCommitWorkBatchService = class
inherit WorkflowRuntimeService
[<System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")>]
type WorkflowCommitWorkBatchService = class
inherit WorkflowRuntimeService
Public MustInherit Class WorkflowCommitWorkBatchService
Inherits WorkflowRuntimeService
- Inheritance
- Derived
- Attributes
Examples
The following example demonstrates a class that inherits from WorkflowCommitWorkBatchService.
//Implementation of the abstract WorkflowCommitWorkBatchService class
class DefaultCommitWorkBatchService : WorkflowCommitWorkBatchService
{
protected override void CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback)
{
// Call base implementation
try
{
base.CommitWorkBatch(commitWorkBatchCallback);
}
catch (Exception e)
{
// Report work batch commit failures
Console.WriteLine("Work batch failed: " + e.Message.ToString());
throw;
}
}
}
'Implementation of the abstract WorkflowCommitWorkBatchService class
Class DefaultCommitWorkBatchService
Inherits WorkflowCommitWorkBatchService
Protected Overrides Sub CommitWorkBatch(ByVal commitWorkBatchCallback As CommitWorkBatchCallback)
' Call base implementation
Try
MyBase.CommitWorkBatch(commitWorkBatchCallback)
Catch e As Exception
' Report work batch commit failures
Console.WriteLine("Work batch failed: " + e.Message.ToString())
Throw
End Try
End Sub
End Class
Remarks
Note
This material discusses types and namespaces that are obsolete. For more information, see Deprecated Types in Windows Workflow Foundation 4.5.
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 null
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.
Constructors
WorkflowCommitWorkBatchService() |
When implemented in a derived class, initializes a new instance of the WorkflowCommitWorkBatchService class. |
Properties
Runtime |
Gets the WorkflowRuntime for this service. (Inherited from WorkflowRuntimeService) |
State |
Gets the state of the WorkflowRuntimeService. (Inherited from WorkflowRuntimeService) |
Methods
CommitWorkBatch(WorkflowCommitWorkBatchService+CommitWorkBatchCallback) |
Called to commit the work batch. |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetHashCode() |
Serves as the default hash function. (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 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 Stopped event. (Inherited from WorkflowRuntimeService) |
RaiseServicesExceptionNotHandledEvent(Exception, Guid) |
Raises the 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) |