2011-10-25 12 views
3

HttpSessionをTomcat 6で使用しています。私のWebアプリケーションをデプロイしたTomcat 6の最初のインスタンスには、Tomcatセッションで期待される動作がありました(maxInactiveIntevalをon私のセッションから30分)。Tomcat 6:インスタンス間で最大セッションアイドル時間が異なる

更新は:

session = request.getSession(true); 
session.setAttribute(USER_CREDENTIALS, new Credentials(username, password)); 
session.setMaxInactiveInterval(60*30); 
:私はこれがどのように最初のセットアップセッションで

セッションで、私はこのタイムアウトを設定しています正確にどのように証明するために、次の

に多くのコードを追加しました

私はこのセッションをチェックするインターセプタを持っています:

HttpSession session = request.getSession(true); 
Credentials cred = (Credentials) session.getAttribute(AuthController.USER_CREDENTIALS); 

私が開発したTomcatインスタンスではうまく動作しているようですが、Tomcat 6の別のインスタンスでは、負荷分散環境ではmaxInactiveIntevalが尊重されていないようです。

アップデート:私は何を意味するには、ユーザが約10秒間(なし新規要求)アクティブでない場合、ユーザーのセッションが期限切れになるということである

maxInactiveIntevalが設定されているコードのどこに他の場所がありません。この現象の原因は何ですか?

+4

あなたの質問は混乱しています。 'setMaxInactiveInterval()'はあなたが思うものをしません。基本的に ''とまったく同じですが、セッションごとに変更することしかできないため、同じ値を設定した行はまったく必要ありません。あなたが見ている問題と正確には何を解決しようとしていますか? – BalusC

+0

@BalusCが指摘したように、はセッションが終了するまでの時間(分)ですが、無効にされる前にセッション間でアイドル状態になっているように見えます。 – stevebot

+1

はい、そうです。この混乱を取り除くために質問を編集したことがわかります。しかし、私はまだあなたの具体的な問題を理解していません。あなたが「尊敬されていない」と言っているのは正確に何ですか?いつどこでこの値を設定していますか?代わりに何が起こりますか? – BalusC

答えて

2

質問のコメントによれば、具体的な問題は、負荷分散されたTomcatインスタンスがセッションをほぼ直ちに期限切れにすることです。 <session-timeout>setMaxInactiveInterval()の設定/変更はまったく役に立ちません。

まず、Firebugおよび/またはFiddlerを使用して、Cookieトラフィックを追跡することによって、クライアントが疑わしいから除外する必要があります。クッキーのトラフィックが正常に見える場合(つまり、クライアントがすべての後続のリクエストで適切なセッションクッキーを返す)、ロードバランサまたはTomcatの設定が破損しています。これはプログラミングエラーではありませんが、サーバー管理者のための食糧です。

関連する問題