是否有一种编程方式来查找由.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连接器的连接池的当前大小?


基础教程推荐
- 如何在Mac系统使用Visual Studio Code运行Python 2023-02-08
- c# – Visual Studio需要Windows 10吗? 2023-09-18
- 在C#中使用MongoDB数据库 2023-06-14
- C#网络编程中常用特性介绍 2023-05-22
- C# String常用函数的使用详解 2023-04-14
- DataGridView自定义单元格表示值、Error图标显示的方法介绍 2023-05-22
- c# – Windows窗体设计器 – 在类前自动添加命名空间 2023-09-19
- 浅谈c#中config.exe 引发的一些问题 2022-11-26
- C# 使用GDI绘制雷达图的实例 2023-02-03
- 关于C#调用C++dll传指针释放内存问题 2023-03-27