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

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

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

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

共有セッション状態では、複数のセッション間で共有できるすべてのデータ (連絡先に関連するデータなど) が収集され、セッション状態データベースに保存されます。

コンタクトはWebサイトへの複数の並行訪問を行うことができ、その場合、各訪問には独自のプライベートセッション状態があります。ただし、連絡先関連情報など、一部のデータは訪問間で共有できます。

同じ連絡先による並列訪問間で共有される情報は、共有セッション状態ストアに格納されます。このデータは引き続きコンタクトに対してプライベートですが、同じコンタクトによって行われたすべての現在のセッションからアクセスできます。

このチュートリアルでは、RedisのSitecoreセッション状態プロバイダーを使用して、Redisをアウトプロセス共有セッション状態ストアとして使用する方法について説明します。

このチュートリアルでは、次の方法について説明します。

  • 共有Redisセッション データベースをデプロイする

  • Sitecoreの設定

  • 専用のRedisセッション処理サーバーを構成する

  • Redisプロバイダーの設定を調整する

メモ

SitecoreはRedisクラスターをサポートしていません。

共有セッション・データベースのデプロイ

Sitecore ASP.NETセッション状態ストア プロバイダー for Redisを使用すると、Redisをセッション状態ストアとして使用できます。プロバイダーは、xDBがWebサイトへのアクセスを追跡するために必要なSessionEndイベントをサポートします。

大事な

設定ファイルを直接変更しないでください。代わりに、実行時に必要な変更を実行するパッチ ファイル を作成する必要があります。

Redisセッション・データベースをデプロイするには:

  1. Azure Redisまたは オンプレミスのRedisを選択します。Azure Redisをプロビジョニングするには、Microsoft Azure Webサイト またはAzure PowerShellの指示に従ってください。

  2. <sitename>\Website\App_Configフォルダーに移動し、ConnectionStrings.configファイルを開き、次の接続文字列を追加します。

    <add name="sharedSession" connectionString="_host_:_port_number _" />
  3. セッション・データベースを指すように接続文字列を構成します。

  4. 変更を保存します。

Sitecoreの設定

既定の共有セッション ストアは、メモリにデータを格納し、内部ASP.NETクラスInProcSessionStateStoreに実装されるin processプロバイダを使用します。

<sharedSessionState defaultProvider="inProc">
  <providers>
    <clear/>
    <add name="inProc"
            type="System.Web.SessionState.InProcSessionStateStore"
            />
  </providers>

代わりにRedisの共有セッション状態プロバイダーを使用するようにSitecoreを設定するには、次の手順に従います。

  1. Webサイトのルートフォルダで、App_Config\Sitecore\Marketing.Trackingフォルダに移動します。

  2. Sitecore.Analytics.Tracking.Configファイルを開きます。

  3. デフォルトの共有セッション状態プロバイダを定義できる行を、sitecore/tracking/sharedSessionStateのパスで見つけます。

  4. sharedSessionStateセクションを更新して、RedisdefaultProviderとして使用します(inProcではありません)。また、次の例に示すように、name属性値をredisに変更する必要があります。

    <sharedSessionState defaultProvider="redis">
      <providers>
        <clear /> 
        <add name="redis" 
                type="Sitecore.SessionProvider.Redis.RedisSessionStateProvider,
                Sitecore.SessionProvider.Redis" 
                connectionString="sharedSession" 
                pollingInterval="2" 
                applicationName="shared" />
      </providers>
    </sharedSessionState>
大事な

設定ファイルを直接変更しないでください。代わりに、実行時に必要な変更を実行する パッチ ファイル を作成する必要があります。

Redisプロバイダーの設定を調整する

Redisプロバイダー設定リファレンスを使用して、セッション状態を構成します。すべてが正しく設定されている場合、セッションレコードは最初のウェブリクエストの後にRedisセッションデータベースに表示されます。

手記

共有セッション状態プロバイダーのlockAgeMilliseconds="15000" を設定して、必要な最小限の時間で連絡先のロックを適用します。値は次の値と等しくなければなりません sitecore/tracking/sharedSessionState/config/maxLockAge (default=5000) + Analytics.MaxAcceptedClockDeviation (default=10000)

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