我正在寻找检测本地连接丢失的情况。是否有办法做到这一点,就像 Corelabs 组件上的事件一样?
谢谢
编辑: 抱歉,我会尝试更具体: 我目前正在使用 datasnap 2009 设计一个原型(prototype)。因此我有一个瘦客户端、一个无状态服务器应用程序和一个数据库服务器。
我能够做的是检测和处理客户端和服务器应用程序之间的连接丢失(互联网连接),以适本地处理它,即:向用户显示信息性错误消息或检测服务器关闭以静默方式重定向到另一个应用程序服务器。
在 2 层中,我曾经使用 ODAC 组件来管理该问题,TOraSession 有一些事件来处理此问题。
最佳答案
通常,连接断开时不会触发任何事件,除非针对数据库触发了语句。这是因为除非正在进行某种 is-alive ping 操作,否则无法知道连接是否丢失。
许多框架通过对服务器执行非常小的查询来检查连接是否仍然有效。可能是从服务器获取时间。特别是在连接池环境中。
您可以在应用程序中的某些数据库事件中(执行之前?)实现连接检查功能。或者制作一个每 10 秒检查一次的计时器。
关于delphi - 数据快照 : Is there a way to detect connection loss globally?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/546930/