I’m regularly in the debugger too long and getting timed-out and losing connection. I want to increase the timeout period while debugging. What switch(es) can I throw for this?
Using RO SDK 6.0.51.901 with client Delphi XE on Win 7 and server Oracle 11g
Here’s the error I’m getting:
exception class EIdSocketError
Socket Error # 10053 Software caused connection abort
Did you try to change the Timeout property value for the channel? It is the HTTP request timeout value expressed in milliseconds, passed directly to the underlying Indy classes. Don’t be surprised with the default value of -1, that is how Indy does it. Also there is the IndyClient property of the channel that provides access to the Indy native client and it has ConnectTimeout property, just in case.
Would SessionDuration do the same thing?
On the server side, I only have: SuperTcpServer, SuperTcpWatcherServer, SessionManager, ROLocalChannel1, ROLocalServer1, RORemoteService1, OraSession1
On the client side: MainDataSnapConnection, SuperTcpChannel, UpdateSuperTcpChannel, StSpawnApplication
No, sessions have nothing to do with socket connections. To say briefly, Session is a server side storage space for each logical client. However sessions have a timeout too but it is much longer than the socket ones, the default value is 15 minutes. The SessionDuration property of the session manager is responsible for that.
As for the sockets, the SuperTcp is more complex so there are several different timeouts for this protocol and several corresponding properties. Check the client channel class instance for properties named *Timeout and increase the values as you need. Also there is a server side property to configure: AckWaitTimeout.
Our wiki is the primary help source - check the links in my previous message. Also feel free to ask here if anything seems not clear or not covered in the wiki.
If your problem is just related to debugging issues: just add the specific exception to the debugger ignore list (tools/options/debugger-options/language-exceptions).
Did you try to change the Timeout property value for the channel? It is the HTTP request timeout value expressed in milliseconds, passed directly to the underlying Indy classes. Don’t be surprised with the default value of -1, that is how Indy does it. Also there is the IndyClient property of the channel that provides access to the Indy native client and it has ConnectTimeout property, just in case.
Best regards - Sergey
In RO 6.0.49 for Delphi XE the IndyClient.ConnectTimeout actually also sets the ReadTimeout to the same value. This is caused by a bug in Indy v10.5.7.
Thank you all! My server timeout issues have been resolved by setting:
SessionManager’s SessionDuration and SessionCheckInterval to 0;
Now I’m still searching for client timeout issues. But that might have to do with Channel’s AckWaitTimeout. I’m still testing…
And, by the way, we are not using HTTP, we are using SuperTcpChannel. Thanks.