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...