在相对较小的服务器 - 客户端环境(最多100个客户端连接到数据库服务器)中,每个正在运行的客户端应用程序检查其数据库连接是否处于活动状态的资源有效方法是什么?
我正在考虑每隔20秒从每个客户端应用程序执行SELECT 1
。
这是否足够好还是有更聪明的东西?
许多用户可以通过移动连接使用数据库,这可能会频繁丢失,因此我的想法是在客户端应用程序中指示此类丢失并在用户提交表单之前发出警告等。 我知道用户可以通过Citrix或MS终端服务解决方案远程运行应用程序客户端,但通常他们只有简单的VPN,仅此而已。
答案 0 :(得分:1)
AFAIK没有SQL Server ping功能,我过去依赖SELECT语句。 我使用了SELECT @@ SERVERNAME,它只返回一行并且非常有效。
或者只有一个包含项目的专用表并选择它。
SqlConnection.State属性不可靠,因为它指示上一次操作之后的状态,因此如果服务器从那时起已经关闭,它将给出错误的状态。
答案 1 :(得分:1)
比SELECT 1
或PRINT ''
更有效发送
a:
什么是标签声明。或
--
什么是评论。
它除了基本的“成功”代码之外没有发回任何输出
(解释为'Command(s) completed successfully.'
)。
编辑:如下面的评论中所示,单个空格()就足够了。这位评论者直到现在都没有发布回复,所以我正在修改我的。