---
title: "ウォークスルー:MongoDBプロバイダーを使ったプライベートセッション状態データベースの設定"
slug: "walkthrough--configuring-a-private-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")では、閲覧ページ、変換された目標、トリガーされたキャンペーン、累積されたエンゲージメントポイントなど、特定のやり取りに関連するすべてのデータが収集され、セッション状態データベースに保存されます。

プライベートセッションステートストアとしてMongoDBまたはSQL Serverのいずれかを使用できます。SQL Serverは、クラウド上でコレクションデータベース(MongoDB)をサービスとして運用する場合や、オンプレミスのMongoDBサーバーインスタンスを使いたくない場合に適しています。

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

このウォークスルーでは、MongoDBデータベースをプライベートセッションステートストアとして*MongoDBのMongoDB ASP.NETセッションステートプロバイダー* を使い、MongoDBセッションデータベースを展開し、Sitecoreを設定し、セッションステート設定を調整する方法を説明します。

> !注MongoDBセッションプロバイダーを使用している場合、すべてのコンテンツ配信サーバーは同じデータベースを指す同じプロバイダーを使うべきです。

MongoDBをセッションデータベースとして展開する前に、[パフォーマンスへの影響](https://doc.sitecore.com/xp/ja/developers/92/platform-administration-and-architecture/mongodb-session-database-performance-considerations.html "MongoDB session database performance considerations")を考慮してください。

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

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

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

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

## 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.  サイトのルートフォルダでweb.configファイルを開き、sessionStateセクションを見つけてください:
    
    <sessionState mode="InProc" cookieless="false" timeout="20">
    
2.  以下の例のように、sessionStateセクションをInProcの代わりにMongoDBプロバイダーを使うように更新してください。また、name属性の値をmongoに変更してください:
    
    <sessionState mode="Custom" customProvider="mongo" cookieless="false" timeout="20">
     <providers>
     <add name="mongo"
     type="Sitecore.SessionProvider.MongoDB.MongoSessionStateProvider,
     Sitecore.SessionProvider.MongoDB"
     connectionStringName="session"
     pollingInterval="2"
     compression="true"
     sessionType="private"/>
     </providers>
    </sessionState>

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

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

舞台設定

概要

価値

connectionStringName

Sitecoreがセッションデータベースに接続するために使用する接続文字列を指定します。  
  
使いたいセッションステートデータベースを指定するために編集してください。xDBでは、このデータベースはセッションと呼ばれます。

例えば:  
  
connectionStringName="session"

pollingInterval

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

例えば:  
  
pollingInterval="2"

compression

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

例えば:  
  
compression="true"

sessionType

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

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

すべて正しく設定していれば、最初のウェブリクエスト後にMongoDBデータベースのリストにセッションデータベースが表示されるはずです。