After completing this chapter, you will learn:
1.workflow Optional Service
2. Create an event Tracking database
3. Activate Event Tracking Service
4. Create a custom trace
5. View your workflow tracking information
So far, we've seen some basic objects of workflow. We create workflow tasks through activities that are managed by WorkflowInstance objects when they are executed. Workflow instances are queued and controlled by WorkflowRuntime. But WF doesn't just provide us with these objects, it also provides us with services to work with these objects.
Pluggable (optional) service
A workflow service is an additional library of software that your workflow can use to accomplish their tasks. Some services are optional, such as the tracking service described in this chapter. and other services require that your workflow must execute it.
A pluggable service is a service that can be selected as a menu order to perform a specific task. For example, there are services that manage threads, tracked services, transaction services, and so on. You can choose the service that suits your workflow. You can even create it yourself.
What do these services look like? What can they do for us? Table 5-1 lists the basic services available, and it gives you a good idea of the concepts of these available services and tells you what they can do.
Most of the services we do not use directly. Our common usage is to use services derived from these basic services.
Table 5-1 Basic Workflow Services
Service |
Function |
WorkflowPersistenceService |
Abstract base class that derives all persisted services. |
Workflowqueuingservice |
The base class provides you with a number of methods that you can use to manage workflow queues associated with a workflow instance. |
Workflowruntimeservice |
Abstract base class that derives the kernel service from the workflow runtime. |
Workflowscheddulerservice |
The base class for all classes that create threads to run workflow instances on the workflow runtime host. |
Workflowsubscriptionservice |
The base class for the administrative Subscription (subscriptions) workflow runtime class. |
Workflowtransactionservice |
The base class for all transaction services. |
Trackingservice |
An abstract base class that provides a basic interface between the tracking service and the Run-time Tracking infrastructure (infrastructure). |
Keep in mind that these are base classes. The services we use actually derive from them. For example, when we run a workflow instance, it is sometimes necessary to create a thread for the instance to use. Defaultworkflowschedulerservice is doing this work, it uses Workflowschedulerservice as its base class. But if you want to provide this thread yourself, you can use Manualworkflowschedulerservice instead. In this chapter we will look at the tracking service provided by SqlTrackingService, which uses Trackingservice as its base class.
The term "pluggable (optional)" is partly derived from the following: You may consider that at any time you may need to use a scheduler service, Run-time Services, queue and subscription (timer) services. But you can also add persistence and tracking services to your work, as well as external data communications.