グローバルセッション情報の有効期限監視は,J2EEサーバ上のHTTPセッションを監視することで実施されます。有効期限の監視下では,有効期限が切れたHTTPセッションについて,データベース上のグローバルセッション情報が削除されます。しかし,J2EEサーバに障害が発生して停止した場合,そのJ2EEサーバで使用されていたグローバルセッション情報は,ほかのJ2EEサーバに引き継がれるか,そのJ2EEサーバが再起動されるまで有効期限の監視が行われません。有効期限の監視が行われない状態が長く続くと,有効期限が過ぎても削除されないグローバルセッション情報が,セッション情報格納テーブルのレコードを使用し続けることになります。
このため,データベース上に残ったグローバルセッション情報を適宜削除する必要があります。
ここでは,グローバルセッション情報をコマンドによって削除する方法について説明します。
グローバルセッション情報を削除するには,cjclearsessionコマンドを使用します。J2EEサーバまたはWebアプリケーションが停止してから,HTTPセッションの有効期限以上の時間が経過したあとに,J2EEサーバまたはWebアプリケーションが再起動する前にコマンドを実行します。
Webアプリケーション内で,Sevlet APIを使用してHTTPセッションごとに有効期限を設定している場合は,最も長い有効期限に合わせてコマンドを実行してください。
グローバルセッション情報を削除する手順を次に示します。
なお,cjclearsessionコマンドに-countオプションを指定して実行すると,J2EEサーバが所有するグローバルセッション情報数を表示できます。
データベースへの接続試行のタイムアウト,データベースのグローバルセッション情報の取得または削除するSQLの実行タイムアウトは8秒です。
コマンド実行中にデータベースアクセスでエラーが発生した場合,エラーが発生した時点でコマンドの実行を中止します。
cjclearsessionコマンドの詳細については,マニュアル「Cosminexus アプリケーションサーバ リファレンス コマンド編」の「cjclearsession(グローバルセッション情報の削除)」を参照してください。
グローバルセッション情報の削除についての注意事項を示します。
項番 | 完全性保障モード | J2EEサーバ上のHTTPセッションの有無 | 動作 |
---|---|---|---|
1 | 無効 | なし | グローバルセッションの引き継ぎができません。 |
2 | あり | 削除されたグローバルセッション情報は,以降,データベース上に保存されない状態となり,J2EEサーバ上のHTTPセッションだけでWebアプリケーションが動作します。 |