1. セッション状態のスケーリングと構成

チュートリアル : SQLプロバイダーを使用したプライベート セッション状態データベースの構成

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

プライベートセッションステートでは、セッションステートデータベースは、閲覧したページ、コンバージョンされたゴール、トリガーされたキャンペーン、累積エンゲージメントポイントなど、特定のインタラクションに関連するすべてのデータを収集して保存します。

SQL ServerのSitecore ASP.NETセッション状態プロバイダーを使用して、SQL Serverデータベースをプライベート セッション状態ストアとして設定できます。

SQL Serverプロバイダーは、xDBがWebサイトへのアクセスを追跡するために必要なセッション終了イベントをサポートしています。

メモ

Content Management (CM) サーバは、外部セッション状態データベースの使用をサポートしていません。CMサーバーでは、インプロセス セッション状態のみを使用できます。

このチュートリアルでは、SQL Serverセッション データベースのデプロイ方法、SQL Serverパフォーマンスの最適化方法、Sitecoreの設定方法、プライベート セッション状態設定の調整方法について説明します。

SQL Serverセッション データベースをデプロイする

手記

共有セッション状態情報とプライベート・セッション状態情報を同じデータベースに格納できます。データベースは、セッションのタイプを区別できます。

SQL Serverセッション データベースをデプロイするには

  1. Microsoft SQL Server Management Studio 2016以降を起動します。

  2. SessionデータベースをインストールするサーバノードにConnectします。

  3. サーバ・ノードを展開し、Databasesを右クリックして、Deploy Data-tier Application.

  4. Deploy Data-tier ApplicationウィザードのSelect Packageページで、Browseをクリックします。

  5. Sitecore.Sessions.dacpacファイルを選択し、Nextをクリックします。

    手記

    このファイルは、SitecoreアーカイブのルートにあるDatabasesフォルダにあります。

  6. Update Configurationステップで、データベースの名前を指定して「Next」をクリックし、サマリー情報を検証した後、「Next」をクリックします。デプロイが完了すると、アタッチされたデータベースのリストにセッション・データベースが表示されます。

  7. 次の接続文字列をConnectionStrings.configファイルに追加します。

    <add
        name="session"
        connectionString="User ID=<SQL server username>;password=<user password>;Data Source=<SQL server>;Database=<session database name>"
    />
  8. 接続文字列のユーザーは、セッション・データベースでストアド・プロシージャを実行できるようにする必要があります。他の権限は必要ありません。システム管理者は、次のSQLステートメントを使用してこの権限を付与できます。

    USE <session database name>;
    GRANT EXECUTE TO <SQL server username>;
    GO

Sitecoreの設定

SQL Serverのプライベート セッション状態プロバイダーを使用するようにSitecoreを設定するには:

  1. サイトのルート フォルダーで、web.configファイルを開き、sessionState行を見つけます。

     <sessionState mode="InProc" cookieless="false" timeout="20" 
        sessionIDManagerType="Sitecore.SessionManagement.ConditionalSessionIdManager">

    この行を次のように変更します。

    <sessionState mode="Custom"
        customProvider="mssql" cookieless="false"
        timeout="20">
  2. 次の例に示すように、SQL Serverプロバイダーを追加して、sessionStateセクションを更新します。name属性値をmssqlに変更します。

    <sessionState mode="Custom" customProvider="mssql" cookieless="false" timeout="20">
      <providers>
        <add name="mssql" 
            type="Sitecore.SessionProvider.Sql.SqlSessionStateProvider,
            Sitecore.SessionProvider.Sql" 
            connectionStringName="session" 
            pollingInterval="2" 
            compression="true" 
            sessionType="private"/>
      </providers>
    </sessionState>

プライベートセッションの状態設定を調整する

プライベート・セッション・ステートの設定を調整するには、次のようにします。

  • web.configファイルで、次の設定オプションを編集します。

設定

形容

価値

connectionStringName

Sitecoreがセッション データベースに接続するために使用する接続文字列を指定します。

編集して、使用するセッション状態データベースを指定します。xDBでは、このデータベースはセッションと呼ばれます。

例えば:

connectionStringName="session"

pollingInterval

セッション状態プロバイダーがセッションの有効期限が切れているかどうかを確認するために使用する時間間隔を秒単位で指定します。

例えば:

pollingInterval="2"

compression

セッション状態データを圧縮することを指定します。

デフォルト値はtrueです。セッション状態データを圧縮すると、データベースとSitecoreインスタンス間で転送する必要があるデータの量が減ります。これにより、追加のCPUオーバーヘッドが発生する可能性があります。

例えば:

compression="true"

sessionType

セッション・ステートのタイプがprivateであることを指定します。

有効な値のみ:

sessionType="private"

この記事を改善するための提案がある場合は、 お知らせください!