• 締切済み

tomcatのセッションタイムアウト

tomcatで構築されたWebアプリを検証しています。 Webアプリにログインし、何も操作せずにセッションタイムアウト時間の確認をしているのですが、 tomcatのセッションタイムアウトの設定値通りにセッションが切れません。 web.xmlの設定値は5分を設定しています。 大抵は設定時間+1分程で切れるのですが、 設定時間+3分ほど待ってみてもセッションが切れないケースがあり、原因がわからない状況です。 利用しているtomcatのバージョンは4.1.31です。 何かtomcatの仕様上でセッションタイムアウトの時間が変わるようなことがあるのでしょうか? 当方初心者のため、お手柔らかにお願いいたします。

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 (j2ee的にも)そういう仕様なのでしょう。  セッションタイムアウトの設定は、「○分たったら切れる」のではなく「最低○分は必ず維持する」という意味合いのもので、実際にタイムアウトする(セッションが破棄される)タイミングはTomcatが決める。それはGCが行われるタイミングかも知れないし、タイマーで回しているのかも知れないし、そういうのを管理するスレッドがたまにのそのそ動きだして○分以上経過したセッションを掃除してまた眠りにつくのかも知れない。

shiroe_2809
質問者

お礼

回等ありがとうございます。 自分のほうでも調べているのですが、以下のようなバグレポートが見つかりました。 https://issues.apache.org/bugzilla/show_bug.cgi?id=37356 再現性がないため、何とも言えませんがもう少し検証頑張ってみます。

関連するQ&A

  • セッションタイムアウトの設定時間通りにならない

    C#によるWebアプリケーションを開発しています。 セッションタイムアウトの設定を240分としていますが、 240分前にタイムアウトになってしまいます。 設定時間通りにタイムアウトにならない事象が発生しており、 原因を究明しています。 【状況】 Web.configとIISにて、セッションタイムアウトの時間を 設定しております。 (1)Web.configの設定 Web.config内にて、 <sessionState timeout = "240" /> のタグを設けて、セッションタイムアウトの時間を240分としています。 (2)IISの設定 IISにて、アプリケーションの構成の【オプション】タブにて、 「セッションのタイムアウト」を240分としています。 【環境】 OS:Windows Server 2003 Webサーバ:IIS6.0 DBサーバ:SQL Server 2005、 セッションタイムアウトが指定時間に行われない原因について、 ご教授の程お願い致します。

  • servletかMySQLでタイムアウトが発生します。

    Tomcat/Apache/Mysqlを利用したWebサーバーを 構築して運用していますが、画面をさわらない状態で、 しばらく置いてからアクセスすると画面が真っ白に なってしまいます。たぶんTomcatかMysqlかでタイム アウトになってしまうのだろうと思いますが・・・。 このタイムアウトの時間を延ばすか、または タイムアウトしないようにする設定はどうしたら 良いのでしょうか? 教えて頂けたら助かります。

    • ベストアンサー
    • Java
  • セッションタイムアウトエラー

    いつも参考にしております。 セッションタイムアウトのエラー(???)で困ってます。 ご存知の方がいらっしゃいましたら、ご教授お願いします。 環境: OS :Windows 2009 Sever ActivePerl : V5.8.9 Webサーバ :IISv7.0 CGI::Session.pm:v4.41 DB :Oracle 10g 詳細は下記のようです。 1.ログイン成功したら、セッションを作成します。 CGI::Session->name( "SID" ); my $session = new CGI::Session( "driver:File", undef, {Directory => 'C:/Inetpub/wwwroot/xxx/tmp/session'} ); $session->expire( '+10h' ); ...省略 2.上記で作成されたセッションIDを画面に保持し、画面遷移する際に セッションIDの存在チェックを行う my $session = CGI::Session -> new( undef, $sid, {Directory => 'C:/Inetpub/wwwroot/xxx/tmp/session'} ); if($sid eq $session -> id) { // セッションID存在する // 次の画面遷移する // セッションタイムアウト再設定 $session->expire( '+10h' ); } else { // セッションID存在しない $session->close; $session->delete; // 作成されたセッションファイルを削除 // エラー画面表示 } 現象: セッションタイムアウトの設定時間に経ってないにもかかわらず たまたまセッションタイムエラーが発生します。 P.S エラーの原因が特定できず、困ってます。 以上、宜しくお願いいたします

    • 締切済み
    • CGI
  • セッションタイムアウトの原因

    朝日新聞のアスパラクラブの会員に登録したのですが、何度ログインしても「セッションタイムアウト一定時間操作がありませんでしたので、安全のために接続を切りました。ログインし直してください。」と出てログインが出来ません。ログインはHPが表示されてすぐしているので一定時間操作がないというのはおかしいのですが・・。何か原因があるのでしょうか?

  • セッションタイムアウトの設定調査

    タイトルの件に関して相談させてください。 現在、業務で入力フォームを構築しているのですが、入力完了まで5画面あり、その間、セッションを保持して値を受け渡しています。(言語、環境は後述) セッションタイムアウトの設定は、現在30分です。 しかし、入力する際に離席する方がいらっしゃるらしく、30分のタイムアウトでは短いので、2時間にしてほしいとの要望があがりました。 この際、2時間にする影響を調べたいのですが、どのような調査方法、確認する値を考えればよいでしょうか。 環境は以下の通りです。   サーバ:IBM AIX   アプリケーションサーバ:Websphare   言語:Java サーブレット (どうやら、Websphareの設定値を変えれば  2時間になりそうです) ご存知の方がいらっしゃいましたが、ご教授を いただければと存じます。 以上、何卒よろしくお願いいたします。

  • JSPで、sessionのタイムアウトを制御したいのですが・・・

    じつはかなり素人なのですが、JSPで、冒頭のほうに、例えば <jsp:useBean id="db" class="db*****.db*****bean" scope="session"/> と記述したとします。で、このsessionのタイムアウトになる時間を制御したいのですが、どのようにしたらよいのかわかりません。 JAVAの記述で制御できる、ということは聞いたことがあるのですが・・・。 もしそれが難しければ、カウントをとって、「sessionタイムアウトまで **分前です」のようなアラートでも出そうかと思っていたのですが・・・。 どなたか、ぜひ教えてください。

  • JSPで、sessionのタイムアウトを制御したいのですが・・・

    じつはかなり素人なのですが、JSPで、冒頭のほうに、例えば <jsp:useBean id="db" class="db*****.db*****bean" scope="session"/> と記述したとします。で、このsessionのタイムアウトになる時間を制御したいのですが、どのようにしたらよいのかわかりません。 JAVAの記述で制御できる、ということは聞いたことがあるのですが・・・。 もしそれが難しければ、カウントをとって、「sessionタイムアウトまで **分前です」のようなアラートでも出そうかと思っていたのですが・・・。 どなたか、ぜひ教えてください。

  • Apacheでセッションタイムアウトの設定方法

    ApacheでPHPで作ったシステムを動かしています。PHPの画面間のデータの受け渡しはセッションを使って行なっているのですが、 そのセッションが早めにタイムアウトとなってしまうので、 時間を長めに設定したいと思っています。 httpd.confのTimeOutを変更してみたのですが、 これはセッションのタイムアウトとは関係ないようで、 変更しても、動きが変わりませんでした。 httpd.conf内に他にそれらしい項目がないのですが、 セッションのタイムアウトを変更した場合、どこにあるどのファイルを変更すればよいのでしょうか? よろしくお願いします。

  • セッションが切れないのは何故?

    画面にログインして操作中、セッションが切れた場合にまたログイン画面を表示するという処理のテストをしています。 タイムアウトまでの時間が24分となっていたので、画面にログインした状態でPCに触らず放置していました。 30分程度放置した後に次の処理に移るためのsubmitボタンをクリックしたところ、セッションは切れず処理が続行されてしまいました。 何故セッションは切れなかったのでしょうか? タイムアウトさせるには何か特別な処理を行わなければいけないのでしょうか? アドバイスをお願いいたします。

    • ベストアンサー
    • PHP
  • Tomcat セッションの保持

    現在、Javaでアプリ開発をしています。 そこで、セッションIDが毎回変わる現象に陥っています。 クッキーの「JSESSIONID」へは同じセッションIDが格納されているのですが、 HttpServletRequestのセッションIDは違うものが来ます。 Tomcatに設定が必要なのでしょうか。 環境は Tomcat7.0.47 です。 類似の現象に合われた方はご教授をお願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう