EJB без состояния с большим количеством внедренных экземпляров EJB - PullRequest
2 голосов
/ 31 августа 2011

Я знаю, что EJB без сохранения состояния хранятся в пуле и создаются по мере необходимости, мой вопрос в том, что происходит, когда есть больше зависимостей EJB, например, с чем-то вроде этого:

@Remote
@Stateless
public class Master_EJB{
     @EJB
     private EJB_A ejb_A;

     @EJB
     private EJB_B ejb_B;
}

EJB_A и EJB_B также являются EJB без сохранения состояния.

В худшем случае, если есть две петиции одновременно, сервер извлечет два экземпляра Master_EJB из пула (или создаст, если необходимо).

Но если из этих двух вызовов одному нужен только EJB_A, а другому только EJB_B, сколько нужно экземпляров: 4 (2 Master_EJB + 1 EJB_A + 1 EJB_B) или 6 (2 Master_EJB + 2 EJB_A + 2 EJB_B )

1 Ответ

2 голосов
/ 31 августа 2011

EJB_A и EJB_B не имеют состояния или сохраняют состояние?

Если состояние не указано, ответ зависит от типа используемого контейнера / пула и недавней ситуации (количество запросов, загрузка сервера и т. Д.). Если с состоянием и контейнером будут созданы 2 экземпляра Master_EJB, то будут созданы два экземпляра EJB_A, а также два экземпляра EJB_B.

Имейте в виду, что контейнер может создавать два экземпляра Master_EJB - это зависит от самого контейнера и текущей ситуации снова (также, контейнер может решить обработать запрос, используя только один экземпляр Master_EJB).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...