是否有一种编程方式来查找由.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连接器的连接池的当前大小?
基础教程推荐
- 算法证明每一位都相同十进制数不是完全平方数 2023-06-08
- C#中的Hashtable 类使用详解 2023-07-04
- Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护 2023-09-26
- NETCORE使用MINIO的PRESIGNEDPUTOBJECTASYNC方法,实现通过浏览器直接上传图片到MINIO服务器 2023-09-28
- 基于StreamRead和StreamWriter的使用(实例讲解) 2022-11-23
- C#实现自动生成电子印章 2023-06-28
- 一文详解C#中重写(override)及覆盖(new)的区别 2023-07-18
- c# – LINQ to SQL查询在结果中有错误的值 2023-11-22
- C#多线程之线程中止Abort()方法 2023-05-31
- C#中类的使用教程详解 2023-06-21