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

プライベートセッション状態では、セッションステートデータベースは閲覧ページ、変換された目標、トリガーされたキャンペーン、累積されたエンゲージメントポイントなど、特定のやり取りに関連するすべてのデータを収集・保存します。

Sitecore ASP.NET Session State Provider for SQL Serverを使い、プライベートセッションステートストアとしてSQL Serverデータベースを設定できます。

SQL Serverプロバイダーは、ウェブサイト訪問を追跡するためにxDBが必要とするセッション終了イベントをサポートしています。

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

このウォークスルーでは、SQL Serverセッションデータベースの展開方法、SQL Serverのパフォーマンス最適化、Sitecoreの設定、プライベートセッション状態設定の調整方法を説明します。

## SQL Serverセッションデータベースのデプロイ

> !注共有セッションの状態情報とプライベートセッションの状態情報を同じデータベースに保存できます。データベースはセッションの種類を区別できます。

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

1.  2016年以降Microsoft SQL Server Management Studio 100を始めましょう。
    
2.  セッションデータベースをインストールしたいサーバーノードにConnectしてください。
    
3.  **サーバーノードを展開し、「データベース****」を右クリックしてから「データティアアプリケーションをデプロイ」をクリックします。**
    
4.  データ **ティアアプリケーションをデプロイ** するウィザードの「 **パッケージ選択** 」ページで、「 **ブラウズ**」をクリックします。
    
5.  Sitecore.Sessions.dacpacファイルを選択して「**次へ**」をクリックします。
    
    > !注Sitecoreアーカイブのルートにある*Databases*フォルダでそのファイルを確認できます。
    
6.  **「設定の更新**」ステップでデータベース名を指定し、「**次へ**」をクリックし、要約情報の検証後に**「次へ**」をクリックします。デプロイが完了すると、セッションデータベースは添付データベースのリストに表示されます。
    
7.  ConnectionStrings.configファイルに以下の接続文字列を追加します:
    
    <add
     name="session"
     connectionString="User ID=<SQL server username>;password=<user password>;Data Source=<SQL server>;Database=<session database name>"
    />
    
8.  接続文字列のユーザーはセッションデータベース上でストアドプロシージャを実行することを許可されなければなりません。他の権限は必要ありません。システム管理者は以下のSQL文でこの権限を付与できます:
    
    USE <session database name>;
    GRANT EXECUTE TO <SQL server username>;
    GO
## Sitecoreの設定

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

1.  サイトのルートフォルダでweb.configファイルを開いて、sessionState行を見つけてください:
    
    <sessionState mode="InProc" cookieless="false" timeout="20"
     sessionIDManagerType="Sitecore.SessionManagement.ConditionalSessionIdManager">
    
    このセリフを以下に変えてください:
    
    <sessionState mode="Custom"
     customProvider="mssql" cookieless="false"
     timeout="20">
    
2.  以下の例のようにSQL Serverプロバイダーを追加してsessionStateセクションを更新してください。name属性の値をmssqlに変更してください:
    
    <sessionState mode="Custom" customProvider="mssql" cookieless="false" timeout="20">
     <providers>
     <add name="mssql"
     type="Sitecore.SessionProvider.Sql.SqlSessionStateProvider,
     Sitecore.SessionProvider.Sql"
     connectionStringName="session"
     pollingInterval="2"
     compression="true"
     sessionType="private"/>
     </providers>
    </sessionState>

## プライベートセッションの状態設定を調整する

プライベートセッションの状態設定を調整するには:

-   web.configファイル内で、以下の設定オプションを編集してください:

舞台設定

概要

価値

connectionStringName

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

例えば:  
  
connectionStringName="session"

pollingInterval

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

例えば:  
  
pollingInterval="2"

compression

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

例えば:  
  
compression="true"

sessionType

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

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