セッションレプリケーションの設定をしている環境で次のログが定期的に出力されます。
“clusterProcessExpires Invalid Time is Illegal. ”
マニュアルによると「HTTPセッションレプリケーション環境でのタイムアウトチェックで時刻判定に失敗しました。」という意味のようですが、この時の動作を教えてください。
セッションレプリケーション用にJNDIサーバに格納されたセッション情報は、レプリケーションを構成する各プロセスがセッションを破棄するかどうかを判定するために、自身のセッションがタイムアウトした後も一定時間JNDIサーバ上に保持されます。
別のプロセスがタイムアウトのチェックを行う際、そのプロセスが稼働するマシンの時刻よりJNDIサーバに格納されたセッションタイムアウト時刻が未来だった場合に本メッセージが出力されます。
例) マシンA、マシンBでセッションレプリケーションが設定されていて、マシンAの時刻はマシンBの時刻より5分遅れているとします。
マシンAの時刻 0:00
マシンBの時刻 0:05
↓
1) マシンBにてセッションタイムアウト検出、タイムアウト
時刻 0:05 をマシンBのJNDIに格納
この際にマシンAのJNDIにも格納
↓
2) マシンAにてタイムアウトしたセッション情報をJNDIから削除するか判定。
・先に取得できた方のJNDIに格納されたセッションタイムアウト時刻(0:05)
※ マシンA,B いずれの JNDI にも 0:05 が登録されている
・自身のマシン時刻(0:00)
両者を比べ自身のマシン時刻よりも、セッションタイムアウト時刻が未来であったため、ログメッセージ出力。
"clusterProcessExpires Invalid Time is Illegal."
なお、このタイムアウトチェックは定期的にバックグラウンドで実行されます。チェック間隔は1分で、この値は変更できません。
対処としては、2台のマシンの時刻を合わせてください。
【対象製品】Application Server
【確認済みのバージョン】V6~V10
【確認済みのエディション】すべて
【確認済みの対象OS】すべて
【確認済みのJavaバージョン】すべて
【コンポーネント】Webコンテナ
【カテゴリー】運用/設定