Hi David,

One option would be to turn on the following config property in your 
'channel-definition'(s) in services-config.xml:

    <!-- Optional.  Default is false.  Setting this flag to true will cause 
clients
         to automatically attempt to re-authenticate themselves with the server 
when
         they send a message that fails because credentials have been reset due 
to server 
         session timeout.  The failed message will be resent after 
re-authentication making the
         session timeout transparent to the client with respect to 
authentication.
    --> 
    <login-after-disconnect>false</login-after-disconnect>

This property name doesn't contain the word 'retry' in it, but that's what it 
does with the call that fails due to a session timeout that triggers an auth 
issue.

If you want to prevent the server session from timing out while the client is 
running, you could ping the server on a wide interval just to keep the session 
alive. 
For instance, if your server session timeout is configured to be 15 minutes, a 
very simple solution is to have your client send a no-op request to the server 
once every 10 minutes.

Seth

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of 
dev_dave_72
Sent: Friday, June 20, 2008 11:14 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] RemoteObject: Automatically Handling Session Timeout

I am developing a flex application using BlazeDS on Tomcat. I am
trying to make the application automatically handle server session
timeouts. That is, if the server session times-out, the next
communication from the client to the server will create a new session.

I am using RemoteObject and can easily capture the
"Client.Authentication" fault that is thrown as a result of a call if
the server has already timed-out. I can easily log back in following
this fault. However, I don't know how to resend the failed call.

Does anyone have any suggestions on how to resend the failed call or
how to detect the timeout before I actually make the call?

I have considered doing a simple no-op call to verify the connection
before each RemoteObject call, but that seems very inefficient to me.
I know I can turn off the server-site timeouts as well, but I don't
really want to have a lot of unused sessions hanging around.

Thanks for any help.
- David.
 

Reply via email to