Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql c3p0连接对象_Mysql_Connection Pooling_C3p0 - Fatal编程技术网

Mysql c3p0连接对象

Mysql c3p0连接对象,mysql,connection-pooling,c3p0,Mysql,Connection Pooling,C3p0,c3p0在maxIdleTime之后删除连接,但会将其添加到BasicResourcePool中名为formerResources的内部weakHashMap中。此映射与JDBC4Connection对象堆积在堆上,仅在GC上清除。是否可以选择退出此类收集,或者此类收集有任何明显的优势?formerResources的目的只是允许c3p0资源的签入是幂等的,同时外部资源(池以前从未见过的连接)的签入会引发警告 实际上,对于大多数c3p0用户来说,很难在这个级别签入外部资源。BasicResour

c3p0在maxIdleTime之后删除连接,但会将其添加到BasicResourcePool中名为formerResources的内部weakHashMap中。此映射与JDBC4Connection对象堆积在堆上,仅在GC上清除。是否可以选择退出此类收集,或者此类收集有任何明显的优势?

formerResources的目的只是允许c3p0资源的签入是幂等的,同时外部资源(池以前从未见过的连接)的签入会引发警告

实际上,对于大多数c3p0用户来说,很难在这个级别签入外部资源。BasicResourcePool隐藏在代理之下,然后是C3P0ConnectionPool对象。但BasicResourcePool本身打算在c3p0之外普遍可用。“签入”外部资源可能意味着一个重大错误,因此“签入”的资源既不会由池管理,也不会真正销毁。因此,发生这种情况时,BasicResourcePool发出警告非常重要。但同样重要的是,如果用户多次签入同一资源,c3p0不会发出警告:我们希望允许客户端在过度签入方面出错(因为池可以忽略第二次签入,但签入失败意味着资源泄漏)。因此,c3p0需要能够区分它曾经管理但现在已清除的资源(不要警告,额外签入是有用的警告)和它从未管理过的资源(必须警告,可能是编程错误和资源泄漏)


这有什么意义吗?

如果GC清除了它,为什么会困扰您?他们不会因为不在那里而很快被清除…我理解。谢谢你详细的回答史蒂夫·沃尔德曼。