2015-07-31 3 views
1

Я как бы новичок в EJB, но мне дали уровень EJB для улучшения.
Этого уровень состоит из EJB которым предоставляет доступные операции:Локальные EJBs без права доступа к удаленному

@Stateless(name = "myejb") 
public class Facade implements FacadeRemote 
{ 
    @EJB 
    private EntityAHomeLocal entityAHome; 

    @EJB 
    private EntityBHomeLocal entityBHome; 

// methods signatures and implementations 
} 

Как вы можете видеть это использование EJB других местных EJBs, которые управляют операциями на юридических лицах.

@Stateless 
public class EntityAHome implements EntityAHomeLocal 
{ 
    @PersistenceContext(name="myUnit") 
    private EntityManager manager; 


    // methods signatures and implementations 
} 

У меня трудное время, чтобы полностью понять архитектуру этого уровня.

  • Является ли этот вид архитектор распространенным?
  • Являются ли локальные EJB, не имеющие аналогов, управляемыми через пул экземпляров, как удаленные EJB без гражданства?
  • Будет ли он работать, даже если entityAHome и entityBHome были удаленными EJB?

ответ

0

Строго говоря, спецификация говорит только апатриды бобы «обычно» объединены (раздел 4.3.10.2), поэтому поведение местных бобов конкретного производителя, но на практике я считаю, что все основные поставщики делают (for example).

Локальные и удаленные интерфейсы практически полностью взаимозаменяемы, но с дополнительными ограничениями на развертывание (то есть они должны быть развернуты локально, конечно), а некоторые вызовы на локальные интерфейсы используют семантику pass-by-reference, тогда как удаленные интерфейсы всегда используют пропуск (link).

Я не вижу ничего, что могло бы остановить этот код, работающий с удаленными интерфейсами, хотя я думаю, что некоторые из названий путают - сеансовый компонент (@Stateless) отличается от сущности, а в терминологии EJB «home» на какой-то заводский класс, который, я думаю, не является вашим намерением здесь (?). Кроме того, имейте в виду, что переход на @Remote может добавить служебные данные о производительности, как отмечает вторая ссылка.

+0

что касается распространения сделки? Я имею в виду, если один из моих локальных ejb использует другой локальный ejb и nn для распространения транзакции .., требовалось бы, чтобы ejb управлялся одним и тем же контейнером? – GionJh

+0

Я бы предложил просмотреть раздел 13.7 спецификации EJB (http://download.oracle.com/intl/ru/jcp/ejb-3.1-pfd-oth-JSpec/) - здесь обсуждаются распределенные транзакции с удаленными клиентами. – hugh

+0

спецификации для меня несколько трудно читать, не могли бы вы предложить мне учебник для изучения по этому вопросу? – GionJh

Смежные вопросы