是否有一种编程方式来查找由.Net connector / MySql.Data.dll维护的数据库的当前打开连接数?我有兴趣在使用库的同一程序中收集此信息.解决方法:连接池在客户端执行.要访问它,您需要使用反射来访问MySqlPoolManager...
是否有一种编程方式来查找由.Net connector / MySql.Data.dll维护的数据库的当前打开连接数?
我有兴趣在使用库的同一程序中收集此信息.
解决方法:
连接池在客户端执行.要访问它,您需要使用反射来访问MySqlPoolManager和MySqlPool类,它们都是MySql.Data程序集的内部类.
基本上,你会想要使用反射来到池中.这是如何做:
Assembly ms = Assembly.LoadFrom("MySql.Data.dll");
Type type = ms.GetType("MySql.Data.MySqlClient.MySqlPoolManager");
MethodInfo mi = type.GetMethod("GetPool", BindingFlags.Static | BindingFlags.Public);
var pool = mi.Invoke(null, new object[] { new MySqlConnectionStringBuilder(connString) });
您会注意到您必须传入MySqlConnectionStringBuilder对象.它为每个连接字符串创建一个单独的池,因此使用您在应用程序中使用的相同连接字符串(它必须完全相同).
然后,您可以访问私有池字段和属性(再次使用反射),以获取所需的信息.特别是,“可用”字段和“NumConnections”属性可能是您感兴趣的.还有“idlePool”(队列<>)和“inUsePool”(列表<>),您也可以访问它们,特别是计数.
本文标题为:c# – 如何查询MySQL的.Net连接器的连接池的当前大小?
- string与stringbuilder两者的区别 2023-01-11
- C#文件路径Path类介绍 2023-06-09
- C#实现视频的批量剪辑功能 2023-07-18
- c# 遍历 Dictionary的四种方式 2023-03-10
- C#使用log4net记录日志 2023-05-11
- C# WPF ListView控件的实例详解 2022-11-15
- C# wpf 通过HwndHost渲染视频的实现方法 2023-05-06
- C#实现简单工厂模式 2023-06-21
- CefSharp如何进行页面的缩放(Ctrl+滚轮) 2023-04-21
- unity学习教程之定制脚本模板示例代码 2023-01-11