方法: インスタンス ストア プロバイダー、インスタンス クエリ プロバイダー、およびインスタンス コントロール プロバイダーの構成

ストア、クエリ、またはコントロール プロバイダーの開発が終了した後は、「方法: カスタム プロバイダーの登録」で説明されている手順を使用して、プロバイダーを登録する必要があります。プロバイダーのインストール プログラムは、次に説明するような手順を実行します。

  1. スクリプト ファイルを実行して、物理インスタンス ストアを作成し、コンピューターにプロバイダー アセンブリをインストールします。

  2. インスタンス ストア プロバイダーの定義をルート Web.config ファイルに追加します。

  3. インスタンス ストアの定義を Web.config ファイルに追加します。

  4. サービスに関連付けられた構成ファイルで、サービスのインスタンス ストア ビヘイビアーを構成します。

以降では、プロバイダー定義、ストア定義、および構成ファイルにストアを使用するストア ビヘイビアーを追加する方法について説明します。

インスタンス ストア プロバイダーの定義

Microsoft AppFabric 1.1 for Windows Server で使用するインスタンス ストアの種類ごとに、インスタンス ストア プロバイダーをルート Web.config ファイルで定義する必要があります。インスタンス ストア プロバイダーの定義には、次のパラメーターが含まれます。

ヒント

コンピューターの web.config ファイルは、次の 2 つの場所にあります。<ドライブ>\Windows\Microsoft.NET\Framework\v4.0.30319\Config フォルダー、およびアプリケーションがインストールされているディレクトリです。

  • 名前。インスタンス ストア プロバイダーの名前を指定します。このパラメーターは必須です。

  • ストア プロバイダーInstanceStoreProvider 抽象クラスを実装する種類の完全修飾名、およびその型を含むアセンブリを指定します。このパラメーターは必須です。

  • クエリ プロバイダーInstanceQueryProvider 抽象クラスを実装する種類の完全修飾名、およびその型を含むアセンブリを指定します。このパラメーターは必須です。ストアがクエリ プロバイダーを実装しない場合は、このパラメーターの値として空の文字列を指定できます。

  • コントロール プロバイダーInstanceControlProvider 抽象クラスを実装する種類の完全修飾名、およびその型を含むアセンブリを指定します。このパラメーターは必須です。ストアがコントロール プロバイダーを実装しない場合は、このパラメーターの値として空の文字列を指定できます。

AppFabric のインストール プログラムでは、次の例に示すような SQL ワークフロー インスタンス ストア用のインスタンス ストア プロバイダーのストア プロバイダー定義が追加されます。

<configuration>
    <microsoft.applicationServer>
        <persistence>
            <instanceStoreProviders>
                <add name="sqlStoreProvider"
                    storeProvider="Microsoft.ApplicationServer.StoreProvider.Sql.SqlWorkflowInstanceStoreFactory, Microsoft.ApplicationServer.StoreProvider, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                    queryProvider="Microsoft.ApplicationServer.StoreManagement.Sql.Query.SqlInstanceQueryProvider, Microsoft.ApplicationServer.StoreManagement, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                    controlProvider="Microsoft.ApplicationServer.StoreManagement.Sql.Control.SqlInstanceControlProvider, Microsoft.ApplicationServer.StoreManagement, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            </instanceStoreProviders>
        </persistence>
    </microsoft.applicationServer>
</configuration>

カスタム インスタンス ストア プロバイダーをインストールするときは、AppFabric のインストールで SQL インスタンス プロバイダーの定義が追加されるのと同じように、ルート Web.config ファイルにストア プロバイダーの定義を追加する必要があります。前の例を見るとわかるように、プロバイダー定義は Microsoft AppFabric 1.1 for Windows Server 構成セクション (Microsoft.ApplicationServer) の一部です。したがって、カスタム ストア プロバイダーをインストールする前に AppFabric をインストールする必要があります。AppFabric をインストールする前にストア プロバイダーをインストールする場合は、対応するストア プロバイダー構成セクションをルート Web.config ファイルに手動で追加する必要があります。また、AppFabric をアンインストールすると、Microsoft.ApplicationServer セクション全体が削除されます。AppFabric をアンインストールする前または後に、カスタム インスタンス ストア プロバイダー (定義ではなく、ストア プロバイダーの種類を含むアセンブリ) を削除できます。

インスタンス ストアの定義

インスタンス ストアの定義では、特定の種類のストアを定義します。ストアの定義には次のパラメーターが含まれます。

  1. 名前。インスタンス ストアの名前を指定します。このパラメーターは必須です。このパラメーターの値は空の文字列でもかまいません。

  2. 説明。インスタンス ストアの説明を指定します。このパラメーターは省略可能です。このパラメーターの既定値は空の文字列です。

  3. ストア プロバイダー。インスタンス ストアのストア プロバイダーの名前を指定します。このパラメーターは必須です。

  4. 追加属性。値と名前のペアとして表されるオプションの属性を指定します。ストア アドレス (SQL インスタンス ストア プロバイダーの接続文字列など) をいずれかのパラメーターで定義する必要があります。定義しないと、ワークフロー管理サービス (WMS) がストアに接続できません。

ルート Web.config ファイルで定義されているインスタンス ストアの例を次に示します。同様にして、カスタム インスタンス ストアを追加する必要があります。

<configuration>
    <microsoft.applicationServer>
        <persistence>
            <instanceStores>
                <add name="storeA"
                    provider="sqlStoreProvider"
                    connectionStringName="storeA-str" />
                <add name="storeB"
                    provider="sqlStoreProvider"
                    connectionStringName="storeB-str" />
                <add name="storeC"
                    provider="MyStoreProvider"
                    MyAddressStringName="storeC-str"
                    value1="rrr"
                    value2="sss"
                    value3="ttt" />
            </instanceStores>
        </persistence>
    </microsoft.applicationServer>
</configuration>

上位のスコープで定義されているストアは、下位のスコープによって自動的に継承されます。<remove /> 要素または </clear> 要素を使用すると、継承されたストア定義をスコープから削除できます。

インスタンス ストア ビヘイビアーの拡張

インスタンス ストアに対してビヘイビアー拡張要素を定義し、ユーザーがサービスととインスタンス ストアを関連付けることができるようにする必要があります。AppFabric のインストールでは、次のビヘイビアー拡張要素が machine.config ファイルに追加され、sqlWorkflowInstanceStoreBehavior をサービスで使用できるようになります。カスタム ストアのビヘイビアーの定義を、ストア プロバイダーのインストールの間に同様の方法で追加する必要があります。

<system.serviceModel>
    <extensions>
        <behaviorExtensions>
            <add name="sqlWorkflowInstanceStore" type="System.ServiceModel.Activities.Configuration.SqlWorkflowInstanceStoreElement, System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        </behaviorExtensions>
    </extensions>
</system.serviceModel>

ビヘイビアー拡張とセクション ハンドラー (machine.config ファイルの SqlWorkflowInstanceStore と workflowInstanceControl など) では、ルート レベルでの既定の設定を含む名前なしビヘイビアーが定義されています。ストアの種類に固有のビヘイビアー拡張とセクション ハンドラーを、machine.config ファイルに追加してください。AppFabric のセットアップでは、SqlWorkflowInstanceStore ビヘイビアーおよび WorkflowInstanceControl ビヘイビアーに対するビヘイビアー拡張が自動的に追加されます。

ビヘイビアーおよびストアを使用するためのサービスの構成

サービスに対して永続化を有効にするには、アプリケーションまたはサービスと関連付けられている Web.config ファイルでインスタンス ストアのビヘイビアーを定義し、サービスとビヘイビアーを関連付ける必要があります。次の例では、sqlWorkflowInstanceStore ビヘイビアーのサンプル定義を示します。connectionStringName の値はインスタンス ストア定義に設定され、その定義では接続文字列が指し示されています。

<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior name=”myServiceBehavior”>
                <sqlWorkflowInstanceStore
                    connectionStringName="storeA-str"
                    instanceCompletionAction=”DeleteAll”
                    instanceLockedExceptionAction=”NoRetry”
                    hostLockRenewalPeriod=”00:00:30”
                    runnableInstanceDetectionPeriod=”00:00:10” />
            </behavior>
        </serviceBehaviors>
    </behaviors>
</system.serviceModel>

SQL ワークフロー インスタンス ストアの構成

Microsoft AppFabric 1.1 for Windows Server のインストール プログラムでは、SQL ワークフロー インスタンス ストア用のインスタンス ストア プロバイダーの定義がルート Web.config ファイルに作成されます。Microsoft AppFabric 1.1 for Windows Server 構成ツールを使用すると、次の機能を実行できます。

  • SQL ワークフロー インスタンス ストアの定義をルート Web.config ファイルに作成します。この定義には、ApplicationServerExtension データベースを参照する接続文字列が含まれます。

  • 物理インスタンス ストアである ApplicationServerExtensions という名前の SQL Server データベースを作成します。

  • ワークフロー管理サービス (WMS) を Windows サービスとしてインストールします。インスタンス ストアを自動的に検出するよう WMS に指示する設定で、既定の WMS 構成セクションをルート Web.config ファイルに追加します。

  2012-03-05