JProfiler帮助文档

连接问题故障排除


当无法建立分析会话时,首先要做的是查看被分析应用程序或应用程序服务器的终端输出。对于应用程序服务器, 标准错误流通常被写入一个日志文件。这可能是一个单独的日志文件,而不是应用服务器的主日志文件。 例如,Websphere应用服务器会写入一个native_stderr.log 文件,其中只包括标准错误输出。 根据标准错误输出的内容,搜索问题的方向不同:

连接问题

如果标准错误包含"Waiting for connection ..." ,则说明应用程序的配置是正确的。 那么问题可能与以下问题有关:

  • 你是否忘记在本地机器上的JProfiler GUI中启动"Attach到远程JVM"会话? 除非分析代理被配置为使用"nowait"选项立即启动, 否则它将等待JProfiler GUI连接后才让VM继续启动。
  • 在会话设置中是否正确配置了主机名或IP地址?
  • 你是否配置了错误的通信端口?通信端口与HTTP或其他标准端口号无关,且不得与任何已在使用的端口相同。 对于分析的应用程序,通信端口被定义为分析VM参数的一个选项。 对于VM参数-agentpath:<jprofilerti库路径>=port=25000 ,将使用25000端口。
  • 本地机器和远程机器之间是否有防火墙?可能有传入和传出连接的防火墙规则配置,或者中间的网关机上有防火墙。

端口绑定问题

如果标准错误中包含关于无法绑定Socket的错误信息,则说明该端口已经在使用中。 在这种情况下,请检查以下问题:

  • 你是否多次启动了分析的应用程序?每个分析应用程序都需要一个单独的通信端口。
  • 是否有任何以前分析运行的僵尸java进程阻塞了端口?
  • 是否有其他的应用程序在使用该通信端口?

如果标准错误中没有以JProfiler> 为前缀的行,而你的应用程序或应用程序服务器正常启动, 则-agentpath:[jprofilerti库路径]VM 参数没有被包含在 Java 调用中。 你应该找出你的启动脚本中实际执行的是哪个java调用,并为其添加VM参数。