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: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of
dev_dave_72
Sent: Friday, June 20, 2008 11:14 AM
To: [email protected]
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.