在应用中开启连接池时,连接池会缓存连接并提供给请求使用,所以在连 接池开启时会将连接资源保存起来,并在设置的缓存连接的生命周期内不会主 动关闭。当应用程序关闭时,很可能没有达到生命周期规定的上限,此时在应 用程序关闭时不会关闭缓存的连接。通常情况下垃圾回收器(GC)会清除不使 用的资源,但有些资源不会清除,比如:连接池缓存的连接。如果这些连接在 不使用时没有被清除,则会始终占用 Server 资源,导致 Server 负载过大,造 成资源浪费。此时需要开发人员调用清理连接池的方法关闭这些缓存的连接。 以下是 GBase ADO.NET 提供的清理连接池的方法:
1) public static void ClearPool(GBaseConnection connection)
功能:清理此连接所在集群连接池的所有缓存连接。
使用场景:当调用驱动的应用程序不在使用此集群连接池资源时调用。
调用方法:GBaseConnection.ClearPool(connection);
connection 为连接实例。
2) public static void GBaseConnection.ClearAllGcPools()
功能:清理所有集群连接池(多集群)缓存连接。
使用场景:当调用驱动的所有应用程序不在使用集群连接池时调用。
调用方法:GBaseConnection.ClearAllGcPools();
注:当驱动中仅存在一个集群连接池资源时,调用两种方法的结果一样。
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/317783.html