ウォークスルー
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
共有セッション状態では、複数のセッション間で共有可能なすべてのデータ、例えば連絡先に関するデータは収集され、セッション状態データベースに保存されます。
連絡先は複数の並行訪問を行うことができ、その場合各訪問は独自のプライベートセッション状態を持ちます。しかし、訪問間で連絡先情報を共有することもあります。
同じ連絡先が並列訪問間で共有される情報は、共有セッションの状態ストアに保存されます。このデータは依然として連絡先にとってプライベートですが、同じ連絡先が作成したすべての現在のセッションからアクセス可能です。
このウォークスルーでは、RedisのSitecoreセッションステートプロバイダーを使って、プロセス外の共有セッションステートストアとしてRedisを使う方法を説明します。XPオンプレミスは、セッションステートプロバイダーとしてRedisをサポートしており、ホスト型デプロイメントオプションとしてAzure管理のRedisも含まれます。
このウォークスルーでは、以下の方法を説明します:
- 共有のRedisセッションデータベースを展開する
- Sitecoreの設定
- 専用のRedis Session Processingサーバーを設定
- Redisのプロバイダー設定を調整してください
!注SitecoreはRedis Clusterをサポートしていません。
共有セッションデータベースの展開
Sitecore ASP.NETセッションステートストアプロバイダーは、Redisをセッションステートストアとして使うことを可能にします。プロバイダーはSessionEndイベントをサポートしており、xDBはウェブサイト訪問を追跡する必要があります。
!重要設定ファイルに直接変更を加えないでください。代わりに、実行中に必要な変更を行うパッチファイル を作成しなければなりません。
Redisセッションデータベースを展開するには:
-
管理されたRedisかRedisオンプレミスAzureどちらかを選べます。 Microsoft Azureウェブサイト の指示や 、Redis Azure PowerShellを使ってAzureのプロビジョニングが可能です。
-
\Website\App_Configフォルダに行き、ConnectionStrings.configファイルを開き、以下の接続文字列を追加してください: -
接続文字列をセッションデータベースを指すように設定してください。
-
変更を保存してください。
Sitecoreの設定
デフォルトの共有セッションストアは、イン プロセス プロバイダーを使用し、これはメモリにデータを保存し、内部のASP.NETクラスInProcSessionStateStoreで実装されています:
SitecoreをRedisの共有セッションステートプロバイダーを使用するように設定するには:
-
ウェブサイトのルートフォルダで、App_Config\Sitecore\Marketing.Trackingフォルダに移動します。
-
Sitecore.Analytics.Tracking.Configファイルを開け。
-
デフォルトの共有セッション状態プロバイダーを定義できる行を次のパスで見つけてください: sitecore/tracking/sharedSessionState。
-
sharedSessionStateセクションをdefaultProviderとしてRedis(inProcではなく)に更新してください。また、名前属性の値をredisに変更する必要があります。以下の例に示されています。
!重要設定ファイルに直接変更を加えないでください。代わりに、実行中に必要な変更を行う パッチファイル を作成しなければなりません。
Redisのプロバイダー設定を調整してください
Redisプロバイダー設定の参照を使ってセッション状態を設定してください。すべて正しく設定されていれば、最初のウェブリクエストの後にセッションレコードがRedisのセッションデータベースに表示されます。
!注共有セッションの状態プロバイダーにlockAgeMilliseconds="15000" を設定し、最小限の時間で接触ロックを強制します。値は次のようになります。 sitecore/tracking/sharedSessionState/config/maxLockAge (default=5000) + Analytics.MaxAcceptedClockDeviation (default=10000)