《WF程式設計》系列 承載工作流 持久化與跟蹤

2022-03-19 06:47:07 字數 2258 閱讀 6557

sql持久化和跟蹤服務分別為工作流狀態和跟蹤資訊提供了持久的儲存。但是,它們並沒有一起工作。具體來說,每個服務都會使用不同的資料庫連線來進行操作。工作流runtime也因此會使用多個資料庫連線。如果跟蹤服務開啟了事務支援,則會導致額外的開銷出現。當事務跨越多個連線時,微軟分布式事務協調程式(microsoft distributed transaction coordinator,msdtc)會接受事務的管理。msdtc也會造成一些開銷。wf為同時使用了sql持久化和sql跟蹤服務的應用程式提供了優化方案:sharedconnectionworkflowcommitworkbatchservice類。這個服務允許兩個sql服務共享乙個連線(前提是這兩個sql服務的連線字串是相同的)。

下面的配置檔案配置了sql工作流服務和共享連線服務。因為我們把連線字串定義在了commonparameters節中,所以所有的服務都會使用這個連線字串。

<?

xml version="1.0" encoding="utf-8" 

?>

<

configuration

>

<

configsections

>

<

section 

name

="workflowconfiguration"

type

="system.workflow.runtime.configuration.workflowruntimesection, system.workflow.runtime, version=3.0.00000.0, culture=neutral, publickeytoken=31bf3856ad364e35"

/>

configsections

>

<

workflowconfiguration

>

<

commonparameters

>

<

add 

name

="connectionstring"

value

="data source=(local);initial catalog=workflowdb;integrated security=true"

/>

commonparameters

>

<

services

>

<

add 

type

="system.workflow.runtime.tracking.sqltrackingservice, system.workflow.runtime, version=3.0.00000.0, culture=neutral, publickeytoken=31bf3856ad364e35"

/>

<

add 

type

="system.workflow.runtime.hosting.sqlworkflowpersistenceservice, system.workflow.runtime, version=3.0.00000.0, culture=neutral, publickeytoken=31bf3856ad364e35"

unloadonidle

="true"

/>

<

add 

type

= "system.workflow.runtime.hosting.sharedconnectionworkflowcommitworkbatchservice, system.workflow.runtime, version=3.0.00000.0, culture=neutral, publickeytoken=31bf3856ad364e35"

/>

services

>

workflowconfiguration

>

configuration

>

我們不需要更改我們的應用程式,共享連線服務會在後台和其它runtime服務一起協調。

本章回顧了windows workflow runtime的一些功能。我們分析了如何通過訂閱runtime事件和配置跟蹤資訊來監視工作流runtime,還分析了如何通過新增服務來定製runtime。這些服務包括排程服務(用作管理執行緒)、持久化服務(用作管理狀態)和跟蹤服務(用作記錄跟蹤資訊)。如果內建的服務並不能完全滿足你的需求,我們可以自己編寫服務來替換掉它們。這中架構給予了windows workflow runtime很大的靈活性和擴充套件性。

lad.li

工作流 WF 程式設計入門

一 wf基礎 簡介 wf 被用於簡化和爭強 net 應用程式開發,wf不是乙個獨立的開發環境,它提供了一套用於輔助工作流的開發框架。特點 wf 的執行時引擎 wf支援順序工作流 狀態機工作流和資料驅動工作流,並且支援工作流的持久化,wf支援使用特定領域模型解決問題,可以開發自己的活動元件,來引入對特...

工作流學習 WF小結

繼承sequentialworkflowactivity,叫做workflow 實現 executecode 建乙個whileactivity,會自動包含上面的workflow 在console workflowinstance instance workflowruntime.creatework...

WF工作流執行機制

1 workflowruntime.startruntime 啟動wf執行時。2 workflowruntime.createworkflow 返回新建立的wf工作流例項。此方法為新建的wf工作流例項準備了乙個排程器和排程器工作佇列。這個方法返回時,wf工作流中的所有活動都處於initialized...