セッション状態
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore Experience Databaseでは、セッション状態サーバーを使用して、さまざまなブラウザーやデバイス間ですべてのコンタクト セッションを共有できます。 セッション状態の構成 は、コンテンツ配信サーバーまたは処理サーバーのクラスターを持つマルチサーバーの完全にスケーラブルな環境を展開している場合に特に重要です。
セッション状態の概要
セッション状態の概要
連絡先のセッション状態を追跡することは、スタンドアロン環境をインストールするか、完全にスケーラブルな環境をインストールするかに関係なく重要です。たとえば、デスクトップのWebブラウザーや携帯電話など、2つの異なるデバイスから2つの同時連絡先セッションを追跡できます。
垂直方向と水平方向のスケーリングを備えた大規模で完全にスケーラブルな環境をデプロイすることにした場合、セッション状態はさらに重要になります。たとえば、マルチコンテンツ配信クラスター環境では、コンテンツ配信インスタンス間で連絡先情報を共有して、連絡先がインタラクションの発信元である特定のクラスターに接続されたままになるようにすることができます。
xDBには、次の2種類のセッション状態があります。
-
プライベート
-
シェアード
プライベートセッション状態と共有セッション状態の両方を構成する必要があります。両方に同じセッション・プロバイダーを使用することを選択できますが、システムがそれらを区別できるようにするには、web.config ・ファイルとSitecore.Analytics.Tracking.config ・ファイルで正しい属性を構成する必要があります。
|
Provider |
Attribute |
Value |
|---|---|---|
|
SQL Server |
sessionType |
private又は shared |
|
MongoDBの |
sessionType |
private又は shared |
|
Redis(レディス) |
applicationName |
private又は shared |
プライベート・セッションの状態
プライベートセッション状態(ASP.NET)では、特定のインタラクションに関連するすべての分析セッションデータが収集され、セッション状態サーバーに保存されます。
セッション中に収集されるプライベートセッションデータには、インタラクションに関するデータと、連絡先が使用したデバイスが含まれます。
デフォルトのプロバイダは、インメモリに格納されたセッション状態を使用する インプロセス (inProc) セッションプロバイダです。これは、テストまたは開発目的で使用される小規模なスタンドアロンインストールに適しています。
マルチサーバー環境がある場合は、次のいずれかの アウト オブ プロセスASP.NETセッション状態プロバイダーを使用する必要があります。
-
Sitecore ASP.NET Redisのセッション状態プロバイダー
-
Sitecore ASP.NET MongoDBのセッション状態プロバイダー
-
Sitecore ASP.NET Microsoft SQL Serverのセッション状態プロバイダー
これらのプロバイダーを使用すると、セッション状態ストアとしてRedis、MongoDB、またはSQL Serverセッション データベースのいずれを使用するかを選択できます。また、xDBがWebサイトへのアクセスを確実に追跡するために必要なセッション終了イベントもサポートしています。また、Session_endイベントをサポートしている外部セッション状態プロバイダーを選択することもできます。
標準のASP.NETセッション状態は、WebブラウザにCookieを格納します。つまり、コンタクトが2つの異なるデバイスからSitecoreを使用する場合、または同じデバイス上の2つの異なるブラウザーからSitecoreを使用すると、2つの別々のセッションが作成されます。
プライベート・セッション状態は、コンテンツ管理サーバー上のSession_End ・イベントをサポートするために必要ありません。プライベート セッション状態は、コンテンツ配信サーバー上のSession_Endイベントをサポートする必要があります。
セッション状態サーバーは、所有するコンテンツ配信クラスターごとに1つだけ構成する必要があります。
共有セッションの状態
連絡先データは収集され、専用の共有セッション状態ストアに格納されます。これは、セッション状態と同じように機能しますASP.NET。共有セッション状態を構成する場合は、インプロセス を使用するか、Redis、MongoDB、またはSQL Serverセッション プロバイダーを選択して アウト オブ プロセス セッション状態をサポートできます。
共有セッション状態データには、連絡先に固有で、連絡先の詳細、デバイス、トリガーされたエンゲージメント自動化状態など、同時セッション間で共有できるすべてのデータが含まれます。この情報は、インタラクションやバックグラウンドプロセスなど、他の同時操作からアクセス可能なままにする必要があり、複数のセッション間で共有できます。
Sitecoreは、共有セッション状態を使用して、現在のコンタクト状態と関連データに関する情報を保存します。
ASP.NETセッション状態 (インタラクション専用) とは対照的に、共有セッション状態は連絡先のセッションを保存し、同じクラスター内の連絡先に関連付けられている任意の訪問セッションからアクセスできます。
共有セッション状態は、コンテンツ管理サーバーではサポートされていません。コンテンツ配信サーバーでは、共有セッション状態がSessionEndイベントをサポートしている必要があります。
セッションの有効期間 (共有)
次のグラフは、1つの連絡先と2つの異なるデバイスからの2つの同時インタラクションのセッションのライフタイムを示しています。

スタンドアロンのコンテンツ配信サーバーが1つしかない場合は、セッション状態を他のサーバーと共有する必要がないため、共有セッション状態をメモリに格納できます。この場合でも、共有セッション状態は、異なるデバイスからの同じ連絡先による同時訪問を処理するのに役立ちます
セッション状態プロバイダー
セッション状態プロバイダー
セッション状態サーバーは、現在の連絡先セッションに関連する情報を格納します。Sitecore xDBには、次の2つのセッション状態サービスが付属しています。
-
プライベート・セッション・ステートは、情報をセッションに対してプライベートに保持します。これは、閲覧したページ、コンバージョンした目標、トリガーされたキャンペーンなどの連絡先訪問情報です。
-
共有セッション状態は、連絡先やデバイスなど、同じクラスター上の複数の訪問によって共有される可能性のある情報を保持します。
セッション状態は、インプロセス (InProc) または アウト オブ プロセス の2つの方法で構成できます。
処理中
インプロセス (InProc) は、Microsoft .NET Frameworkに付属する既定のセッション状態プロバイダーです。内部メモリを使用して、インタラクションと訪問を追跡します。
インプロセスは、特定のインタラクション(単一の訪問者セッションまたは訪問)に関連するすべてのデータのプライベートセッション状態を処理するのに最適な方法です。これは、コンテンツ管理サーバーに使用することを推奨するモードです。
ロード・バランシングされた環境でInProcを使用することはできません。ただし、ロード・バランサーをスティッキー・セッションを使用するように構成する必要があります。
アウト・オブ・プロセス
アウト オブ プロセス セッション状態とは、Redis、MongoDB、SQL Serverなどの外部ASP.NETセッション状態プロバイダーを使用することを意味します。また、Session_Endイベントをサポートする任意のカスタム プロバイダーを使用することもできます。アウト オブ プロセスは、複数のコンテンツ配信サーバーがある場合に、共有セッション状態またはプライベート セッション状態を処理するのに適しています。
Sitecoreには、アウト オブ プロセス セッション状態を設定するための次のセッション状態プロバイダーが付属しています。
-
Sitecore ASP.NET Redisのセッション状態プロバイダー
-
Sitecore ASP.NET MongoDBのセッション状態プロバイダー
-
Sitecore ASP.NET Microsoft SQL Serverのセッション状態プロバイダー
さまざまなタイプのSitecoreサーバー設定でセッション状態を設定する場合、いくつかの異なる セッション状態設定シナリオ に従うことができます。