Wildfly - ищущий метод зависает между возвратом и получателем - PullRequest
0 голосов
/ 02 апреля 2020

в моей серверной среде (Wildfly 10) У меня странная ситуация:

Я просмотрел экземпляр компонента, например X На этом компоненте я асинхронно вызываю метод 'y' (из старого приложения GWT - asyn c обратный вызов).

Код веб-приложения:

log.info("Before call y");
X.y(param);
log.info("After call y");

на методе сервера выглядит так:

public Object y(Param p){
   log.info("In y");
   Object obj = processParam(param);
   log.info("Y processed");
   return obj;
}

проблема в том, что иногда (иногда он работает отлично) зависает , Из моего исследования журнала я вижу, что 11 потоков вызывают Xy; В ситуации, когда он зависает, журнал каждого потока

[Thread-X] Before call y
[Thread-X] In y
[Thread-X] Y processed

, но позже возвращаемый объект никогда не получает в вызывающей стороне (все потоки зависают), и сообщение журнала After call y никогда не будет зарегистрировано.

Любая идея где проблема? Я проверяю все перехватчики, обрабатываемые между клиентом и бином - наконец, ситуация выглядит как описано, последний перехватчик обрабатывается правильно. Похоже, что только код клиента java, wildfly и wildfly (jboss) является возможным местом зависания / тупика.


Добавлено: после большой отладки я обнаружил, что проблема между вызовом org.jboss .as.ejb3.remote.LocalEjbReceiver from org.jboss.ejb.client.EJBClientInvocationContext.sendRequest. Ниже показан экран из затмения: eclipse code screen

...