共用方式為


使用 Windows Server AppFabric Cmdlet 來設定工作流程持續性

您可以使用 AppFabric Cmdlet 來取得或設定工作流程服務的 SQL Server 持續性設定。 您可以為特定工作流程服務設定服務等級或伺服器、網站或應用程式範圍的持續性功能,以及讓服務繼承定義於更高等級的這些設定。 如需設定如何在 IIS 階層中運作的詳細資訊,請參閱Windows Server AppFabric 中的組態程序

注意

若要以互動方式執行 AppFabric Cmdlet,您必須使用 Windows Server AppFabric 的 Windows PowerShell 主控台,輸入適當的 Cmdlet,然後按下 ENTER。 如需以一般方式執行 AppFabric Cmdlet 的詳細資訊,請參閱執行 Windows Server AppFabric Cmdlet。 如需有關範圍參數 (-SiteName、-VirtualPath 與 -Uri 等) 的詳細資訊,請參閱 Cmdlet 範圍;如需有關管道處理參數 (ApplicationInfo 與 ServiceInfo) 的詳細資訊,請參閱 Cmdlet 管道處理

此主題的各節說明如何為工作流程服務設定 SQL Server 持續性功能。

使用 Cmdlet 為工作流程服務設定 SQL Server 持續性功能

本節說明如何使用 AppFabric Cmdlet 在與指定範圍關聯的組態檔中,取得、設定或清除 SQL Server 持續性相關元素與屬性的值。

Cmdlet

描述

Get-ASAppSqlServicePersistence

在與指定範圍關聯的組態檔中,取得持續性相關元素的值與 sqlWorkflowInstanceStore 元素的屬性值。

Set-ASAppSqlServicePersistence

在與指定範圍關聯的組態檔中,設定持續性相關元素的值與 sqlWorkflowInstanceStore 元素的屬性值。

Clear-ASAppSqlServicePersistence

從與指定範圍關聯的組態檔中,清除或移除 sqlWorkflowInstanceStore 元素。

Get-ASAppSqlServicePersistence Cmdlet 的語法選項

// to get workflow service persistence settings at the root level
Get-ASAppSqlServicePersistence -Root

// to get workflow service persistence settings at the Web site level
Get-ASAppSqlServicePersistence -SiteName <String> 

// to get workflow service persistence settings at the virtual application or service level that the VirtualPath points to 
Get-ASAppSqlServicePersistence -SiteName <String> -VirtualPath <String>] 

// to get workflow service persistence settings at the site, virtual application or service level that the Uri points to
Get-ASAppSqlServicePersistence -Uri <Uri> 

// to get workflow service persistence settings at the application level specified by the ApplicationObject.
Get-ASAppSqlServicePersistence -ApplicationObject <ApplicationInfo> 
// Ex: Get-ASApplication -SiteName "Default Web Site" -VirtualPath /SampleApp | Get-ASAppSqlServicePersistence

// to get workflow service persistence settings at the service level specified by the Service Object
Get-ASAppSqlServicePersistence -ServiceObject <ServiceInfo> 
// Ex: Get-ASApplicationService –SiteName “Default Web Site” –VirtualPath “/SampleApp/SampleService.xamlx” | Get-ASAppSqlServicePersistence

Set-ASAppSqlServicePersistence Cmdlet 的語法選項

Set-ASAppSqlServicePersistence [-SiteName] <String> [[-VirtualPath] <String>] [-ConnectionString <String>] [-ConnectionStringName <String>] [-EnableNetPipeProtocol] [-HostLockRenewalPeriod <TimeSpan>] [-InstanceCompletionAction {DeleteAll | DeleteNothing}] [-InstanceEncodingOption {GZip | None}] [-InstanceLockedExceptionAction {AggressiveRetry | BasicRetry | NoRetry}] [-RunnableInstancesDetectionPeriod <Time>] [-UseInherited] [<CommonParameters>]

Set-ASAppSqlServicePersistence [-Uri] <Uri> [-ConnectionString <String>] [-ConnectionStringName <String>] [-EnableNetPipeProtocol] [-HostLockRenewalPeriod <TimeSpan>] [-InstanceCompletionAction {DeleteAll | DeleteNothing}] [-InstanceEncodingOption {GZip | None}] [-InstanceLockedExceptionAction {AggressiveRetry | BasicRetry | NoRetry}] [-RunnableInstancesDetectionPeriod <Time>] [-UseInherited] [<CommonParameters>]

Set-ASAppSqlServicePersistence -ApplicationObject <ApplicationInfo> [-ConnectionString <String>] [-ConnectionStringName <String>] [-EnableNetPipeProtocol] [-HostLockRenewalPeriod <TimeSpan>] [-InstanceCompletionAction {DeleteAll | DeleteNothing}] [-InstanceEncodingOption {GZip | None}] [-InstanceLockedExceptionAction {AggressiveRetry | BasicRetry | NoRetry}] [-RunnableInstancesDetectionPeriod <Time>] [-UseInherited] [<CommonParameters>]

Set-ASAppSqlServicePersistence -ServiceObject <ServiceInfo> [-ConnectionString <String>] [-ConnectionStringName <String>] [-EnableNetPipeProtocol] [-HostLockRenewalPeriod <TimeSpan>] [-InstanceCompletionAction {DeleteAll | DeleteNothing}] [-InstanceEncodingOption {GZip | None}] [-InstanceLockedExceptionAction {AggressiveRetry | BasicRetry | NoRetry}] [-RunnableInstancesDetectionPeriod <Time>] [-UseInherited] [<CommonParameters>]

Set-ASAppSqlServicePersistence [-ConnectionString <String>] [-ConnectionStringName <String>] [-EnableNetPipeProtocol] [-HostLockRenewalPeriod <TimeSpan>] [-InstanceCompletionAction {DeleteAll | DeleteNothing}] [-InstanceEncodingOption {GZip | None}] [-InstanceLockedExceptionAction {AggressiveRetry | BasicRetry | NoRetry}] [-Root] [-RunnableInstancesDetectionPeriod <Time>] [-UseInherited] [<CommonParameters>]

下表列出 Set-ASAppSqlServicePersistence Cmdlet 專用的參數。

參數

描述

HostLockRenewalPeriod

指定鎖定到期之前,主機應更新其工作流程服務執行個體鎖定的間隔時間。 若主機未在指定的時間間隔之內更新鎖定,則工作流程服務執行個體會解除鎖定,因此另一個主機可取得該執行個體的鎖定。

InstanceCompletionAction

指定當工作流程服務執行個體完成之後,是否在持續性資料庫中保留執行個體狀態資訊。 此參數允許的值為: DeleteAll 與 DeleteNothing。

InstanceEncodingOption

指定將執行個體狀態資訊儲存到持續性儲存區之前,是否使用 GZip 演算法來壓縮該資訊。 可能的值有 GZip 及 None。

InstanceLockedExceptionAction

指定當服務主機收到 InstanceLockedException 時應採取的動作 (主機嘗試鎖定工作流程服務執行個體時,若執行個體目前正由另一個主機鎖定,即會收到此訊息)。 此欄位的選項如下: NoRetryBasicRetryAggressiveRetry。 下列清單提供這三個選項的說明:

  • NoRetry. 服務主機不會嘗試鎖定工作流程服務執行個體,而且會將 InstanceLockedException 傳遞給呼叫者。如果您的工作流程會保留在記憶體中超過 60 秒,請使用 NoRetry 做為重試設定。 預設值為 NoRetry

  • BasicRetry. 服務主機會重新嘗試鎖定工作流程服務執行個體 (重試間隔時間固定),並將 InstanceLockedException 傳遞給順序結尾的呼叫者。 如果您的工作流程會保留在記憶體中約 5-60 秒,而且訊息是以批次方式到達 (這種情況下,訊息更有可能傳送到相同主機上的相同執行個體,以在解除載入工作流程之前處理所有訊息),請使用 BasicRetry 以在不浪費資源的情況下擁有最佳延遲。

  • AggressiveRetry. 服務主機會重新嘗試鎖定工作流程服務執行個體 (以指數後退演算法計算重試間隔),並將例外狀況傳遞給順序結尾的呼叫者。 如果您的工作流程保留在記憶體中的時間很短暫 (少於 5 秒),或是 Web 伺服陣列很大,且另一個訊息傳遞到相同主機的機率不高,請使用 AggressiveRetry 以擁有最佳延遲。

注意

使用 BasicRetryAggressiveRetry 時,逾時會自動設定為呼叫的逾時,且無法加以設定。

可執行的執行個體偵測間隔

指定時間間隔,經過此時間之後,「SQL 工作流程執行個體儲存區」將執行偵測工作以偵測上次偵測循環之後持續性資料庫中可執行或可啟動的工作流程執行個體。

注意

您只需要傳遞要變更的參數值,而不需要傳遞所有參數值。

Clear-ASAppSqlServicePersistence Cmdlet 的語法選項

Clear-ASAppSqlServicePersistence -Root

Clear-ASAppSqlServicePersistence -SiteName <String> 

Clear-ASAppSqlServicePersistence -SiteName <String> -VirtualPath <String>] 

Clear-ASAppSqlServicePersistence -Uri <Uri> 

Clear-ASAppSqlServicePersistence -ApplicationObject <ApplicationInfo> 
// Ex: Get-ASApplication -SiteName "Default Web Site" -VirtualPath /SampleApp | Clear-ASAppSqlServicePersistence

Clear-ASAppSqlServicePersistence -ServiceObject <ServiceInfo> 
// Ex: Get-ASApplicationService –SiteName “Default Web Site” –VirtualPath “/SampleApp/SampleService.xamlx” | Clear-ASAppSqlServicePersistence

  2011-12-05