Eclipse Java SOAP在Linux上调用非常慢,但在PC

时间:2016-08-26 21:09:33

标签: java linux windows performance soap

我正在开发一个WS客户端来从远程服务器提取数据。我使用eclipse构建了通过WSDL文件访问服务器的对象。当我从我的PC上运行代码它运行正常时,性能是我所期望的,因为我有网络连接等。

当我导出JAR并从我的Linux服务器运行时,它将最终运行,每次调用大约需要2分钟。

我们的网络人员进行了一些数据包捕获,他们看到了初始连接建立的POST和ACK,然后120秒没有活动,然后请求数据包被发送到服务器,响应按预期快速恢复。

似乎有阻止呼叫的东西,但PC和服务器之间的代码是相同的。

有没有人见过类似的问题?我无法访问的服务器是基于Windows的服务器,客户端是Linux服务器。

根据jstack,它似乎在socketRead0中被阻止了120秒以上

     "main" #1 prio=5 os_prio=0 tid=0x000000000f2b6000 nid=0x5776 runnable [0x00002ae42ae1d000]
   java.lang.Thread.State: RUNNABLE

1 个答案:

答案 0 :(得分:0)

如果您可以使用调试模式运行应用程序而不是尝试从IDE调试它 - Remote debugging a Java application

如果不是 - 请求操作进行换档 - jstack: Target process not responding
并分析等待期间发生的事情 - How to analyze a java thread dump?