我有一个项目,我使用HikariCP
进行JDBC连接池。而HikariCP的作品非常适合我的需求。它还会记录下面的池的统计信息。JDBC连接是如何实现的?
2014-12-03 10:16:08 DEBUG HikariPool:559 - Before cleanup pool stats loginPool (total=8, inUse=0, avail=8, waiting=0)
2014-12-03 10:16:08 DEBUG HikariPool:559 - After cleanup pool stats loginPool (total=7, inUse=1, avail=7, waiting=0)
只是为了实验的目的,我关闭了所有使用MySQL Workbench
配置数据库MySQL
连接。但是,我仍然看到HikariCP
像以前一样记录统计信息,尽管没有实际的数据库连接。当有连接请求时,它立即建立连接(最初8),所以一切都很好。
所以,我的问题是如何管理或实施这些连接?我认为为什么HikariCP
记录统计信息,就好像有连接一样,是因为它在内存引用中对连接有效,而连接实际上并不存在(有数据库)。
我的理解是否正确?
只是好奇。我已经承认这个问题很广泛。但是,有没有什么资料可以用来理解Java Heap对象和外部连接之间的关系? – phoenix 2014-12-03 06:49:26
MySQL Connector/J和HikariCP的源代码就是你需要的。深入研究JVM源代码不太可能告诉你任何相关的东西。 (在这个级别上,这只是映射到套接字和流上,并且不太可能有任何与您在JDBC客户端API上观察到的内容相关的“管理”)。 – 2014-12-03 06:56:42