Поиск JNDI, когда два профиля WAS совместно используют одну и ту же машину - PullRequest
2 голосов
/ 15 сентября 2009

У меня есть два профиля на моей машине, и в одном профиле я развернул EJB, который можно найти из POJO в другом профиле. Но профиль, из которого я делаю поиск, в конечном итоге выполняет поиск в своем собственном узле. Если я разверну эти два приложения на двух разных машинах, я смогу выполнить поиск. Кто-то сказал мне, что создание имени виртуальной машины в WAS поможет, но я не знаю, как ее использовать. Может кто-нибудь помочь, как мне решить эту проблему?

Спасибо

Кшитий Гупта

Ответы [ 2 ]

4 голосов
/ 15 сентября 2009

"Но профиль, из которого я выполняю поиск, в конечном итоге выполняет поиск в своем собственном узле."

Позвольте мне убедиться, что я понимаю, что вы говорите:

Ваше приложение работает в профиле A, ваш EJB развернут в профиле B.

В профиле B у нас есть несколько узлов, N1, N2, ... при выполнении поиска приложение подключается к одному из узлов, скажем, N2, и по умолчанию при выполнении поиска в N2 мы видим дерево JNDI, связанное с Узел N2, который может не находиться там, где EJB зарегистрировал свое имя.

Это твоя проблема?

Если это так, то есть два возможных подхода.

  1. Навигация по JNDI, начиная с ячеек
  2. Использовать ячейку / постоянный раздел - я рекомендую это

Вариант 1: все дерево JNDI видно из любого узла. См. диаграмму JNDI в инфоцентре. Затем вы можете перемещаться по иерархии, указав путь в этом стиле

cells/<mycell>/nodes/<ejbNode>/... etc.  

откуда угодно.

Проблема этого подхода заключается в том, что приложению необходимо понимать топологию ячейки. Если имена узлов (или имена кластеров) должны измениться, строка поиска изменится. Это хрупкое решение.

Вариант 2: Вместо этого EJB-регистр должен находиться в стабильном месте в дереве JNDI. Это то, для чего нужен постоянный раздел ячейки. Сначала вы изменяете EJB (или его DD), чтобы указать имя как

cell/persistent/myEjb

и затем используйте эту строку в вашем поиске.

0 голосов
/ 08 декабря 2012

Я столкнулся с этой проблемой во время установки на клиентский компьютер в эти дни. Я потратил 4 дня, пытаясь понять, почему это не сработало. Не знаю, как ты это быстро обнаружил но решение очень простое:

Если у вас есть 2 WAS на одном и том же имени хоста, клиент WAS думает, что сервер один и тот же, поэтому он не будет искать через CORBA, мы решили связать 2 WAS на 2 разных именах хоста и IP-адресах. и это делает свое дело.

...