delphidelphi-2009n-tier-architecturedatasnapmidas-server

Datasnap : Is there a way to detect connection loss globally?


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 prototype 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 appropriately, 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.


Solution

  • 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.