The SqlTrackingService class represents a fully functional tracking service. You can use this service out-of-box to collect and store tracking information, and to store tracking profiles and provide them when requested by the workflow runtime engine. The SQL tracking service writes tracking data sent to it by the runtime tracking infrastructure to a SQL database.
In many scenarios it is important for the SqlTrackingService to maintain consistency between its database and the state of the workflow runtime engine. Therefore, the SqlTrackingChannel class makes use of the IPendingWork interface in order to participate in the workflow transaction batching functionality provided by the WorkflowCommitWorkBatchService. You can set IsTransactional or pass the appropriate parameters to the constructor to configure the SqlTrackingService to participate in batching and add objects that represent pending changes to the SQL database to the WorkBatch.
The SqlTrackingService also maintains tracking profiles in its database. The workflow runtime engine must be kept apprised of changes to any of the tracking profiles that it is using. The SqlTrackingService implements the IProfileNotification interface and periodically examines the tracking profiles in its database in order to notify the workflow runtime engine of changes to a TrackingProfile stored in its database. You can set ProfileChangeCheckInterval or pass the appropriate parameter to the constructor in order to set the interval at which the SqlTrackingService examines its tracking profiles in order to notify the tracking runtime of any profile changes.
Note: |
|---|
| When using both the SqlTrackingService and the SqlWorkflowPersistenceService in a workflow application, it is recommended to use a single database for both persistence and tracking. |