JNDI lookup on cluster
От: Transformerrr  
Дата: 05.05.16 11:20
Оценка:
Коллеги,
есть приложение, установленное на кластер WebLogic, два сервера, лоад балансинг (Apache). Есть POJO, который использует JNDI lookup (..new InitialContext.lookup(name) ..) для поиска stateless EJB. Внутри этого EJB — обращение к JAX-WS сервису.
Сценарий такой — после выполнения логики по цепочке выше на сервере 2, останавливаем сервер 2. Затем вновь выполняем цепочку, ожидаем, что все отработает, поскольку сервер 1 в работе. Но нет, поскольку запрос к веб сервису отправляется на стопнутый сервер 2. По докам веб лоджика вроде как не должно такого быть, стаб должен определить что сервер стопнут. Есть подозрение, что проблема в JNDI lookup, но как это проверить — непонятно.
Куда тут смотреть?
Re: JNDI lookup on cluster
От: Blazkowicz Россия  
Дата: 05.05.16 13:07
Оценка:
Здравствуйте, Transformerrr, Вы писали:

T>Внутри этого EJB — обращение к JAX-WS сервису.

Это как?

T>Сценарий такой — после выполнения логики по цепочке выше на сервере 2, останавливаем сервер 2. Затем вновь выполняем цепочку, ожидаем, что все отработает, поскольку сервер 1 в работе. Но нет, поскольку запрос к веб сервису отправляется на стопнутый сервер 2. По докам веб лоджика вроде как не должно такого быть, стаб должен определить что сервер стопнут. Есть подозрение, что проблема в JNDI lookup, но как это проверить — непонятно.


Чет вообще не понятно. Есть POJO, он через JNDI lookup находит бин, а бин ещё зачем-то через JAX-WS пытается вызывать сервис задеплоеный (sic!) на том же сервере.
И при том что в цепочке POJO-EJB-Сервис ломается звено EJB-Сервис, делается вывод что виноват lookup в звене POJO-EJB.
Re[2]: JNDI lookup on cluster
От: Transformerrr  
Дата: 05.05.16 13:32
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, Transformerrr, Вы писали:


T>>Внутри этого EJB — обращение к JAX-WS сервису.

B>Это как?

T>>Сценарий такой — после выполнения логики по цепочке выше на сервере 2, останавливаем сервер 2. Затем вновь выполняем цепочку, ожидаем, что все отработает, поскольку сервер 1 в работе. Но нет, поскольку запрос к веб сервису отправляется на стопнутый сервер 2. По докам веб лоджика вроде как не должно такого быть, стаб должен определить что сервер стопнут. Есть подозрение, что проблема в JNDI lookup, но как это проверить — непонятно.


B>Чет вообще не понятно. Есть POJO, он через JNDI lookup находит бин, а бин ещё зачем-то через JAX-WS пытается вызывать сервис задеплоеный (sic!) на том же сервере.

B>И при том что в цепочке POJO-EJB-Сервис ломается звено EJB-Сервис, делается вывод что виноват lookup в звене POJO-EJB.

да, не так написал, сорри. есть 2 приложения — app1, app2. задеплоены на двух серверах, в разных кластерах, скажем app1 — a1, a2. app2 — b1, b2.
EJB — это часть app1. Он является клиентом сервиса, который включен в app2. Останавливаем инстанс веб лоджика на втором сервере, а2 и b2 — недоступны. Ошибка при попытке клиента обратиться к сервису на a2.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.