---
title: "ウォークスルー:MongoDBプロバイダーを用いた共有セッション状態データベースの設定"
slug: "walkthrough--configuring-a-shared-session-state-database-using-the-mongodb-provider"
abstract: "MongoDBを共有セッションステートストアとして使う方法。"
---
# ウォークスルー:MongoDBプロバイダーを用いた共有セッション状態データベースの設定

連絡先は異なるデバイスやブラウザセッションから同時に複数回ウェブサイトにアクセスできます。共有セッション状態では、[セッション状態データベースが](https://doc.sitecore.com/xp/ja/developers/92/platform-administration-and-architecture/scaling-and-configuring-session-state.html "Scaling and configuring session state") これら複数のセッション間で共有可能なすべてのデータを収集します。これには例えば連絡先やデバイスに関するデータが含まれます。このデータは連絡先にとっては依然としてプライベートですが、同じ連絡先が作成したすべての現在セッションからアクセス可能です。

単一のスタンドアロンCDサーバー、複数のCDサーバー、クラスタ環境のいずれであっても、コンテンツ配信(CD)サーバーでは常に共有セッション状態を設定しなければなりません。

> !注共有セッション状態はコンテンツ管理サーバーではサポートされていません。

共有セッション状態は、抽象クラスSessionStateStoreProviderBase を拡張する任意のセッションステートストアプロバイダー(ASP.NETに付属)を使用できるように設定できます。唯一の追加要件は、セッションステートストアプロバイダーがSessionStateItemExpireCallbackを通じてSessionEnd イベントを呼び出せることです。

> !注ASPに付属している標準のOutOfProcSessionStateStoreはSessionEndイベントをサポートしていないため.NET共有セッション状態では使用できません。
> 
> xDB Cloud Editionを使用している場合、MongoDBの共有セッション状態プロバイダーの使用はこのサービスの一部として含まれていません。

このセクションの手順に従って、*Sitecore ASP.NETセッションステートプロバイダーを使ってMongoDB MongoDB*データベースを共有セッションストアとして使用し、MongoDBセッションデータベースを展開し、Sitecoreを設定し、セッションステート設定を調整してください。

## MongoDBセッションデータベースの展開

Sitecore ASP.NET Session State Provider for MongoDBは、MongoDBをセッションステートストアとして使用できるようにします。プロバイダーはSessionEnd イベントをサポートしており、xDBはウェブサイト訪問を追跡する必要があります。

MongoDBセッションデータベースを展開するには:

1.  MongoDBのウェブサイトの指示に従って、MongoDBのデータベースサーバーバージョン2.6以降を専用サーバーにインストールしてください。
    
2.  適切なXMLエディタで、ここにあるConnectionStrings.configファイルを開きます: <sitename>\\Website\\App\_Configに以下の接続文字列を追加します。
    
    <add name="sharedsession" connectionString="mongodb://\_mongo\_server\_name\_:\_port\_number\_/\_session\_database\_name\_" />
    
3.  接続文字列をセッションデータベースを指すように設定してください。
    
4.  変更を保存してください。
    

## Sitecoreの設定

> !注設定ファイルに直接変更を加えないでください。代わりに、実行時に必要な変更を行う [パッチファイル](https://doc.sitecore.com/xp/ja/developers/92/platform-administration-and-architecture/use-a-patch-file-to-customize-the-sitecore-configuration.html "Use a patch file to customize the Sitecore configuration") を作成する必要があります。

MongoDBの共有セッションステートプロバイダーを使用するようにSitecoreを設定するには:

1.  ウェブサイトのルートフォルダで \\App\_Config\\Marketing.Trackingフォルダに移動します。
    
2.  Sitecore.Analytics.Tracking.configファイルを開け。
    
3.  デフォルトの共有セッション状態プロバイダーを定義できる行を次のパスで見つけてください: sitecore/tracking/sharedSessionState。
    
4.  デフォルトの共有セッションストアはinProcプロバイダー(メモリにデータを保存し、内部ASP.NETクラスのInProcSessionStateStoreで実装)を使用します。
    
    <sharedSessionState defaultProvider="inProc">
     <providers>
     <clear/>
     <add name="inProc" type="System.Web.SessionState.InProcSessionStateStore" />
     </providers>
    </sharedSessionState>
    
    > !注クラスタ環境の場合、SitecoreはMongoDBセッションステートストアプロバイダーを付属しています。
    
5.  MongoDBを共有セッションステートストアプロバイダーとして設定するには、defaultProviderをinProcからmongoに変更してください。また、name属性値をmongoに変更してください。
    
    <sharedSessionState defaultProvider="mongo">
     <providers>
     <clear/>
     <add name="mongo"
     type="Sitecore.SessionProvider.MongoDB.MongoSessionStateProvider,
     Sitecore.SessionProvider.MongoDB"
     connectionStringName="sharedsession"
     pollingInterval="2"
     compression="true"
     sessionType="shared"/>
     </providers>
    </sharedSessionState>

## セッションステート設定を調整してください

Sitecoreでは、セッション状態を設定する際に以下の設定オプションがあります。

舞台設定

概要

価値

connectionStringName

Sitecoreがセッションデータベースに接続するために使用する接続文字列を指定します。  
  
使いたいセッションステートデータベースを指定するために編集してください。

例えば:  
  
connectionStringName="sharedsession"

pollingInterval

セッション状態提供者がセッションの期限切れを確認するために使用する秒単位の時間間隔を指定します。

例えば:  
  
pollingInterval="2"

compression

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

例えば:  
  
compression="true"

sessionType

セッション状態のタイプが sharedであることを指定します。

唯一の有効な価値:  
  
sessionType="shared"