Cosminexus システム運用ガイド

[目次][用語][索引][前へ][次へ]

3.3.3 セッションのライフサイクルの調査

ここでは,性能解析トレースを利用したセッションのライフサイクルの調査方法について説明します。

セッションのライフサイクルは,PRFトレース取得レベルを「詳細」に設定している場合に出力されるトレース(セッショントレース)を利用して調査できます。

セッショントレース情報は,出力された性能解析トレースファイルのセッションIDまたはグローバルセッションID(セッションフェイルオーバ機能を使用している場合)をキーにして調査できます。

セッションIDは,セッショントレース情報として出力されたイベントのオプション領域に,次の形式で出力されます。

 
セッション文字数:セッションID
 

例えば,「abc123」というセッションIDの場合,オプション領域には「6:abc123」と出力されます。セッションIDが空文字の場合は,セッション文字数として「0:」と出力されます。セッションIDを取得できなかった場合は,何も出力されません。

グローバルセッションIDの場合も同様の形式で出力されます。

また,特定のイベントのセッションIDは,リクエストヘッダのCookieまたはURL書き換えをした場合のURLから取得されます。どちらから取得したのかは,セッションIDの末尾に出力された文字から確認できます。Cookieから取得した場合は,これらのイベントで出力されるセッションIDに続いて「C」が出力されます。URLから取得した場合は,セッションIDに続いて「U」が出力されます。セッションIDの取得元が確認できるイベントを,次に示します。

セッショントレース情報が出力されている性能解析トレースファイルの例を次の図に示します。この例は,一つのセッションの有効期間内での,セッションを生成するリクエスト,セッションを利用するリクエスト,およびセッションを破棄するリクエストのトレース情報を出力したものです。また,ここでは,セッションを生成するリクエスト,セッションを利用するリクエスト,およびセッションを破棄するリクエストを分けて示します。実際はこれら三つの出力例は,続けて出力されます。また,これらの画面では,セッショントレースに関係ない出力項目は表示していません。

図3-5 セッショントレース情報が出力されている性能解析トレースファイルの例(セッションを生成するリクエスト部分)

[図データ]

  1. イベント「0x8208」のASCIIの列に,生成されたセッションIDが出力されます。オペレーション列の60は,セッションの有効期間を示します。
  2. イベント「0x8300」のASCIIの列に,生成されたグローバルセッションIDが出力されます。

    図3-6 セッショントレース情報が出力されている性能解析トレースファイルの例(セッションを利用するリクエスト部分)

    [図データ]

  3. リクエストヘッダのCookieから取得したセッションIDであることを示しています。

    図3-7 セッショントレース情報が出力されている性能解析トレースファイルの例(セッションを破棄するリクエスト部分)

    [図データ]

  4. イベント「0x8209」のASCII列に,破棄したセッションのセッションIDが出力されます。オペレーション列は,破棄したセッションの生成時刻を示します。
  5. グローバルセッションが破棄されていることを示します。破棄されたグローバルセッションIDは出力されません。

このトレースファイルで確認できることについて説明します。

セッションの有効期間の確認
セッション生成時には,イベント「0x8208」が出力されます。セッション破棄時には,イベント「0x8209」が出力されます。これらの取得時刻から,セッションの有効範囲を確認できます。また,イベント「0x8208」では,オペレーション名から生成されたセッションの有効期間(秒)も確認できます。
セッションIDは,セッションを破棄するリクエスト内のイベント「0x8209」でセッションが破棄されるまで,同じIDが出力されます。なお,イベント「0x8209」のオペレーション名から破棄されたセッションの生成時刻も確認できます。

グローバルセッションの有効期間の確認
グローバルセッションの有効期間は,出力されたグローバルセッションIDを基に確認できます。グローバルセッションIDとは,セッションフェイルオーバ機能を使用している場合に,冗長化されたJ2EEサーバ間で引き継がれたセッションが一意であることを示すためのIDです。詳細は,マニュアル「Cosminexus 機能解説」のセッションフェイルオーバによるセッション情報の引き継ぎに関する説明を参照してください。
グローバルセッションIDが生成されている場合,特定のトレース取得ポイントでセッションIDに続けてグローバルセッションIDが出力されます。
図3-5の場合,セッションを生成するリクエスト内のイベント「0x8300」のタイミングでグローバルセッションIDが生成されて,そのIDが出力されています。グローバルセッションIDは,セッションを破棄するリクエスト内のイベント「0x8209」でリクエスト処理が完了するまで,同じIDが出力されます。