If the user is clicking a submit button on the form, then the browser
is sending a request to the server, and that should reset the timer
for the session timeout. I haven't used Struts so I don't know if that
changes the session handling somehow. With my own webapp, the session
stays active as long as I send requests periodically.

Maybe you should do some logging to figure out what's happening. You
can use Tomcat's AccessLogValve to verify that requests are coming in
within the timeout interval, and your own code could log some session
info like getCreationTime, getLastAccessedTime.
--
Len

On 4/30/07, Rashmi Rubdi <[EMAIL PROTECTED]> wrote:
On 4/30/07, Chris Edwards <[EMAIL PROTECTED]> wrote:
> Hi. I have my session-timeout set to 60 minutes in web.xml. The page in
> question is dynamically rendered based on what's currently in the
> session and the user adds items one at a time. So they fill out a form,
> submit it to a Struts Action which adds it to the Session object and
> then forwards back to that page where the new item is added to a list or
> an error message is given.
>
> Everything works fine except that the session will time-out and then
> they are forwarded to the "session-timeout-login-again" page. Since the
> data is written to the DB after they have added all items some people
> are losing their work if they happen to hit that 60 minutes.

In the above case it is the ~same~ request within same browser
instance, the session times-out after an inactive interval.

So if they add things to the cart but the browser stays idle for more
than 60 minutes, then the session times out.

However if you implement
http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpSessionListener.html
, it sends a notification when the Session is about to be invalidated
( JavaEE 5) , on receiving the notification you can choose to either
commit or rollback the transaction or save it temporarily.


> Does submitting a new Request not constitute a "reset" of the
> session-timeout?

new Request -- yes (if HTTP Redirect is used, it is a new Request)

same Request -- no (if HTTP Forward is used, it is the same Request)

Most likely you are navigating from one page to the next with Http
Forward, which maintains the ~same~ Http Request throughout the
navigation.

> The page should not be cached since a new item is added
> or an error message is given after every form submit.
>
> Thanks in advance for any help / advice. All the best.
>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When Http Redirect is used a new session is created and it resets the
session timeout interval....

Session ID : F98B9FA599811B0A206C73316B970EB0
Session was created at : Mon Apr 30 12:52:03 EDT 2007
Perform Http Redirect
Session ID : 4779909EE1A36F003E381D6C913B31E5
Session was created at : Mon Apr 30 12:52:08 EDT 2007

Notice a new session is created above, thus resets the timeout interval.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
When Http Forward is used the same request and thus the same session
exists throughout, so the session timeout interval of the session
created by this request remains the same.

Session ID : 55FD6EF762C1AFC549F2EBBFB7CC5208
Session was created at : Mon Apr 30 12:54:09 EDT 2007
Perform Http Forward
Session ID : 55FD6EF762C1AFC549F2EBBFB7CC5208
Session was created at : Mon Apr 30 12:54:09 EDT 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

-Regards
Rashmi

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to