有什么方法可以监控数据库连接是否中断?我有一个跨应用程序共享的连接,并且一些对象应该对连接中断做出反应。
理想情况下,它应该是一个事件。我发现的唯一一件事是连接异常,但它是在本地引发的(我正在侦听异常)。
我有想法继承DbConnection
并侦听此对象中的异常(重载其方法),在连接错误异常上引发信号(通过相关代码)。但也许有最简单的方法。
谢谢你的想法。
共享单个连接从来都不是一件好事,而且是一种不好的做法。主要原因其实是你的问题。我建议你稍微改变你的设计(没什么大不了的)并依赖 ADO.NET连接池。如果您不想遇到各种瓶颈,尤其是在多线程情况下,这是必须的。
这意味着您的所有连接都是暂时的,只有在需要访问数据库时才创建一个。
您可以在此处阅读有关它的更多信息,还可以在其中找到有关如何使用它的示例。关于它的主要了解是它使用 Disposable 模式。
//Notice the **using ** block
using(SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
//do something with the connection.
//as soon as the using block ends, the managed connection is disposed and released in the pool
}