6.7.3 グローバルセッション情報の削除

グローバルセッション情報の有効期限監視は,J2EEサーバ上のHTTPセッションを監視することで実施されます。有効期限の監視下では,有効期限が切れたHTTPセッションについて,データベース上のグローバルセッション情報が削除されます。しかし,J2EEサーバに障害が発生して停止した場合,そのJ2EEサーバで使用されていたグローバルセッション情報は,ほかのJ2EEサーバに引き継がれるか,そのJ2EEサーバが再起動されるまで有効期限の監視が行われません。有効期限の監視が行われない状態が長く続くと,有効期限が過ぎても削除されないグローバルセッション情報が,セッション情報格納テーブルのレコードを使用し続けることになります。

このため,データベース上に残ったグローバルセッション情報を適宜削除する必要があります。

ここでは,グローバルセッション情報をコマンドによって削除する方法について説明します。

●グローバルセッション情報の削除方法

グローバルセッション情報を削除するには,cjclearsessionコマンドを使用します。J2EEサーバまたはWebアプリケーションが停止してから,HTTPセッションの有効期限以上の時間が経過したあとに,J2EEサーバまたはWebアプリケーションが再起動する前にコマンドを実行します。

Webアプリケーション内で,Sevlet APIを使用してHTTPセッションごとに有効期限を設定している場合は,最も長い有効期限に合わせてコマンドを実行してください。

グローバルセッション情報を削除する手順を次に示します。

  1. 環境変数CLASSPATHに,使用するJDBCドライバのパスを設定する。
    cjclearsessionコマンドを初めて使用する場合,環境変数CLASSPATHに使用するJDBCドライバのパスを指定します。
  2. cjclearsessionコマンドを実行して,グローバルセッション情報を削除する。
    コマンドにアプリケーション識別子,サーバID,使用するJDBCドライバの情報,およびデータベースアクセスに必要な情報を指定して実行します。アプリケーション識別子で指定したWebアプリケーションの,サーバIDで指定したJ2EEサーバが所有するグローバルセッション情報がすべて削除されます。
  3. 必要に応じて,J2EEサーバまたはWebアプリケーションを再起動する。

なお,cjclearsessionコマンドに-countオプションを指定して実行すると,J2EEサーバが所有するグローバルセッション情報数を表示できます。

データベースへの接続試行のタイムアウト,データベースのグローバルセッション情報の取得または削除するSQLの実行タイムアウトは8秒です。

コマンド実行中にデータベースアクセスでエラーが発生した場合,エラーが発生した時点でコマンドの実行を中止します。

cjclearsessionコマンドの詳細については,マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「cjclearsession(グローバルセッション情報の削除)」を参照してください。

●注意事項

グローバルセッション情報の削除についての注意事項を示します。