我的WCF服务正在保持数据库连接,以便通过它们进一步发送SQL。有时连接因各种原因而中断。早期有一个特殊的计时器,每1分钟检查一次连接。但问题并不是那么好的解决方案。您能否请一些方法来建议我保持连接正常工作,或者尽快重新连接以提供用户稳定的服务。 谢谢!
修改 数据库服务器是Oracle。我正在使用devart dotConnect for Oracle连接到数据库服务器。
答案 0 :(得分:4)
您不必“保持”数据库连接。保留数据库连接的重用和缓存到.net框架。
只需使用此类代码,并在完成使用后立即处理连接:
using(var connection = new SqlConnection(...))
{
//Your Code here
}
对每次调用数据库执行上面的代码都没有问题。连接信息被缓存,与数据库的第二个“新”连接非常快。
要阅读有关“ConnectionPooling”的更多信息,您可以阅读此MSDN Articel。
编辑:
如果您使用池,则连接不是非常接近,而是将其放回池中。客户端和数据库之间的初始“握手”仅在池上的每个连接上完成一次。
您正在使用的组件也支持连接池: