Windows Server AppFabric コマンドレットを使用したワークフロー永続化の構成

AppFabric のコマンドレットを使用して、ワークフロー サービスの SQL Server 永続化設定を取得または設定することができます。 永続化機能の設定は、特定のワークフロー サービスのサービス レベルで構成することも、サーバー、サイト、またはアプリケーションのスコープに対して構成して、これらの上位レベルでの定義をサービスに継承させることもできます。 IIS 階層で構成がどのように機能するかの詳細については、「Windows Server AppFabric での構成プロセス」を参照してください。

ヒント

AppFabric コマンドレットを対話形式で実行するには、Windows Server AppFabric 用の Windows PowerShell コンソールを使用し、コマンドレットを入力して Enter キーを押します。 AppFabric コマンドレットの実行に関する全般的な情報については、「Windows Server AppFabric コマンドレットの実行」を参照してください。 スコープ パラメーター (-SiteName、-VirtualPath、-Uri など) の詳細については、「コマンドレットのスコープ」を参照してください。パイプ パラメーター (ApplicationInfo および ServiceInfo) の詳細については「コマンドレット パイプ」を参照してください。

このトピックでは、特定のワークフロー サービスに対する SQL Server 永続化機能を構成する方法を説明します。

ワークフロー サービスに対する SQL Server 永続化機能をコマンドレットを使用して構成するには

このセクションでは、AppFabric コマンドレットを使用して、指定したスコープに関連付けられた構成ファイル内の SQL Server 永続化関連の要素および属性の値を、取得、設定、消去する方法を説明します。

コマンドレット

説明

Get-ASAppSqlServicePersistence

指定のスコープに関連付けられた構成ファイル内の sqlWorkflowInstanceStore 要素で定義されている、永続化関連の要素と属性の値を取得します。

Set-ASAppSqlServicePersistence

指定のスコープに関連付けられた構成ファイル内の sqlWorkflowInstanceStore 要素で定義されている、永続化関連の要素と属性の値を設定します。

Clear-ASAppSqlServicePersistence

指定のスコープに関連付けられた構成ファイルから sqlWorkflowInstanceStore 要素を消去または削除します。

Get-ASAppSqlServicePersistence コマンドレットの構文オプションは次のとおりです。

// 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 コマンドレットの構文オプションは次のとおりです。

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 コマンドレットに固有のものです。

パラメーター

説明

HostLockRenewalPeriod

ワークフロー サービス インスタンスに対するロックが失効するまでの時間を指定します。ホストは、この時間が経過する前にロックを更新する必要があります。 指定した期間内にホストがロックを更新しなかった場合は、ワークフロー サービス インスタンスのロックは解除され、他のホストがそのインスタンスのロックを取得できるようになります。

InstanceCompletionAction

ワークフロー サービス インスタンスが完了した後もインスタンス状態情報を永続化データベースに保持するかどうかを指定します。 このパラメーターに指定できる値は、 DeleteAll および DeleteNothing です。

InstanceEncodingOption

インスタンス状態情報を永続化ストアに保存する前に、GZip アルゴリズムを使用してこの情報を圧縮するかどうかを指定します。 指定できる値は、GZip および None です。

InstanceLockedExceptionAction

サービス ホストが InstanceLockedException を受け取ったときに行う操作を指定します。この例外は、ホストがロックしようとしたワークフロー サービス インスタンスが別のホストによってロックされているときに発生します。 このフィールドで使用できるオプションは NoRetryBasicRetry、および AggressiveRetry です。 次に、これら 3 つのオプションについて説明します。

  • NoRetry. サービス ホストはワークフロー サービス インスタンスのロックを試行せず、呼び出し元に InstanceLockedException を渡します。ワークフローがメモリに 60 秒間留まる場合は、再試行として NoRetry を使用します。 既定値は NoRetry です。

  • BasicRetry. サービス ホストは再試行間隔を線形に変化させながらワークフロー サービス インスタンスのロックを再試行し、シーケンスの最後に呼び出し元に InstanceLockedException を渡します。 ワークフローがメモリにおよそ 5 ~ 60 秒間留まり、ワークフローのアンロード前にすべてのメッセージが同じホストの同じインスタンスで処理されるようにメッセージが一括して届く場合は、BasicRetry を使用すると、リソースを浪費せず遅延を最適化できます。

  • AggressiveRetry. サービス ホストは再試行間隔を指数関数バックオフ方式で変化させながらワークフロー サービス インスタンスのロックを再試行し、シーケンスの最後に呼び出し元に例外を渡します。 ワークフローがメモリに留まる期間が非常に短時間 (5 秒未満) である場合、または Web ファームが広大で別のメッセージが同じホストに配信される可能性があまり高くない場合、遅延を最適化するには AggressiveRetry を使用します。

ヒント

BasicRetryAggressiveRetry のどちらでもタイムアウトは自動的に呼び出しのタイムアウトに設定され、構成することはできません。

RunnableInstancesDetectionPeriod

期間を指定します。この期間後、SQL ワークフロー インスタンス ストアでは検出タスクを実行し、前の検出サイクル後に永続化データベースにある実行可能またはアクティブ化可能なワークフロー インスタンスを検出します。

ヒント

値を渡す必要があるのは、変更するパラメーターのみです。すべてのパラメーターの値を渡す必要はありません。

Clear-ASAppSqlServicePersistence コマンドレットの構文オプションは次のとおりです。

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