gpt4 book ai didi

c# - npgsql 泄漏 Postgres 数据库连接 : Way to monitor connections?

转载 作者:可可西里 更新时间:2023-11-01 08:47:00 25 4
gpt4 key购买 nike

背景:我正在将我的应用程序从 npgsql v1 迁移到 npgsql v2.0.9。运行我的应用程序几分钟后,我收到 System.Exception:从池中获取连接时超时。

网络声称这是由于连接泄漏(打开数据库连接,但没有正确关闭它们)造成的。

所以

我正在尝试诊断 npgsql 中泄漏的 postgres 连接。

来自身边的各种网络文学;诊断泄漏连接的一种方法是在 npgsql 上设置日志记录,并在日志中查找泄漏连接警告消息。问题是,我在任何地方的日志中都没有看到这条消息。

我还找到了监视 npgsql 连接的实用程序,但它不稳定并且会崩溃。

所以我只能手动检查代码。对于创建 npgsql 连接的每个地方,都有一个 finally block 处理它。对于打开数据读取器的每个地方,都使用 CommandBehavior.CloseConnection(并处理数据读取器)。

还有其他地方可以检查或者有人可以推荐一种方法来查找泄漏的池连接吗?

最佳答案

更新:我正在以更好的方式检查这些泄漏连接的分配位置。请查看我的帖子:http://fxjr.blogspot.com/2012/11/better-tracing-of-npgsql-connection.html希望对您有所帮助。

编辑:您可能想尝试我们最新的测试版 2.0.11.91。我们添加了更多代码来改进可以帮助您的连接池。

嗯嗯,这很奇怪....你应该会收到一些消息。

这些消息仅在 ms.net 运行时完成对象时出现。您是否有可能同时使用超过默认的最大连接数?我的意思是,您的峰值使用量可能超过 20 个最大连接数...

希望对你有帮助。

请告诉我你得到了什么。

关于c# - npgsql 泄漏 Postgres 数据库连接 : Way to monitor connections?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2775489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com