分析时打开的套接字数量增加

Number of sockets opened increased while profiling

我目前正在分析一个 Tomcat 8.5 应用程序,它使用 DBCP 作为 Neo4j JDBC 驱动程序连接的标准池。

我不明白的是为什么当我开始分析应用程序(使用 Yourkit 或 JProfiler)时打开(而不是关闭)的套接字数量如此之多,而这个数字在没有分析的情况下很低且稳定。使用 lsofls /proc/my_tomcat_pid/fd | wc -l 命令确认了相同的行为。

所以我想知道我的应用程序是否真的没有释放 Neo4j JDBC 连接,或者它是否是由分析器引入的开销。

有线索吗?

如果您正在使用 YourKit 配置文件,您可以 运行 专门 "Not closed socket connections" 检查 https://www.yourkit.com/docs/java/help/event_inspections.jsp Profiler 将显示未关闭的套接字在何处创建和打开。

实际上这是一个与 Neo4j JDBC 驱动程序和数据库探测器相关联的 Yourkit 错误,Yourkit 团队很快就修复了这个错误。该修复程序在 Build 75 中可用:https://www.yourkit.com/forum/viewtopic.php?f=3&t=39801