views:

394

answers:

2

Hi everybody,

I'm looking to detect local connection loss. Is there a mean to do that, as with the events on the Corelabs components ?

Thanks

EDIT: Sorry, i'm going to try to be more specific: I'm currently designing a protoype using datasnap 2009. So i've got a thin client, a stateless server app and a database server.

What i would be able to do is to detect and handle connection loss (internet connectivity) between the client and the server app to handle it appropriatly, ie: Display an informative error message to the user or to detect a server shutdown to silently redirect on another app server.

In 2-tier i used to manage that with ODAC components, the TOraSession have some events to handle this issues.

sorry for my bad english

A: 

What kind of connection loss? Do you mean Internet connectivity? Or something like a database connection? Please be more specific.

Tommy Hui
+2  A: 

Normally there is no event fired when a connection is broken, unless a statement is fired against the database. This is because there is no way of knowing a connection loss unless there is some sort of is-alive pinging going on.

Many frameworks check if a connection is still valid by doing a very small query against the server. Could be getting the time from a server. Especially in a connection pooling environment.

You can implement a connection checking function in your application in some of the database events (beforeexecute?). Or make a timer that checks every 10 seconds.

BennyBechDk
I'm not sure that there is no way to detect the connection loss, because the connection loss of the underlying socket may be detectable. It is however true that most libraries have no event for it.
mghie