[CDO] How is timeout detected? [message #1042328] |
Tue, 16 April 2013 09:26 |
|
Hi everyone,
I was wondering how does CDO detect timeout one a client machine.
We have a customer which has a very restrictive server configuration
(only 1 port is opened) and hence "ping" the server does not even work.
With this configuration, any time a user does not modify his models for
more than a few minutes, a TimeOut Exception is raised. With our other
customers, who do not have this server configuration, TIME OUT is only
raised when server is actually down.
Any hint on the code I should look at to debug the timeout detection?
Best regards,
Alex Lagarde (Morel)
|
|
|
Re: [CDO] How is timeout detected? [message #1042353 is a reply to message #1042328] |
Tue, 16 April 2013 10:10 |
|
Am 16.04.2013 11:26, schrieb Alex Lagarde:
> Hi everyone,
>
> I was wondering how does CDO detect timeout one a client machine.
>
> We have a customer which has a very restrictive server configuration (only 1 port is opened) and hence "ping" the
> server does not even work.
>
> With this configuration, any time a user does not modify his models for more than a few minutes, a TimeOut Exception
> is raised. With our other customers, who do not have this server configuration, TIME OUT is only raised when server is
> actually down.
>
> Any hint on the code I should look at to debug the timeout detection?
Probably at the adequate end of the stack trace of the TimeoutException that you experience :P
I suspect that your server somehow closes idle connections, where the idle time is short. In some environments the
client end of such a connection is not aware until your user sends the next request, which can time out. You can use
CDONet4jSession.options().getNet4jProtocol().setTimeout() to control when requests time out.
But you probably want to keep the connection open and be notified "immediately" when it fails for any reason. You can
open a HeartBeatProtocol through the same IConnector that's used by CDO's session. Or you can use a special session type
that uses a HeartBeatProtocol internally to discover connection failure and initiate transparent reconnects:
CDONet4jUtil.createReconnectingSessionConfiguration().
Cheers
/Eike
----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
Cheers
/Eike
----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
|
|
|
Powered by
FUDForum. Page generated in 0.03164 seconds