Eclipse Java SOAP appelle extrêmement lent sur Linux mais bien sur PC


Je développe un client WS pour extraire des données d'un serveur distant. J'ai utilisé eclipse pour construire les objets pour accéder au serveur via le fichier WSDL. Lorsque j'exécute le code à partir de mon PC, il fonctionne bien, les performances sont ce à quoi je m'attendrais compte tenu de la connexion réseau, etc. que j'ai.

Lorsque j'exporte le JAR et que je l'exécute à partir de mon serveur Linux,il s'exécutera finalement, chaque appel prend ~2 minutes.

Nos gars du réseau ont fait quelques captures de paquets, et ils ont vu le POST et ACKs de l'initiale établissement de la connexion, puis 120 + secondes d'aucune activité, puis un paquet de demande est envoyé au serveur et les réponses reviennent rapidement comme prévu.

Il semble que quelque chose bloque l'appel, mais le code est le même entre le PC et le serveur.

Quelqu'un A vu des problèmes similaires? Le Serveur, je n'ai pas accès à un serveur windows, et le côté client est un serveur Linux.

Selon le jstack, il semble être bloqué dans le socketRead0 pour comme 120 + secondes

     "main" #1 prio=5 os_prio=0 tid=0x000000000f2b6000 nid=0x5776 runnable [0x00002ae42ae1d000]
   java.lang.Thread.State: RUNNABLE
Author: Cœur, 2016-08-27

1 answers

Si vous pouvez exécuter votre application en mode débogage, essayez simplement de la déboguer à partir de ID - Débogage à distance d'une application Java

Sinon-demander des opérations pour faire des threaddumps - jstack: Processus cible ne répondant pas
Et analyser ce qui se passe pendant l'attente - Comment analyser un vidage de thread java?

 0
Author: Denis Kurochkin, 2017-05-23 12:19:25