2012-03-05 5 views
0

Я работаю в правительственном проекте, используя EJBs. Я обнаружил некоторые проблемы с сервером при развертывании EJB. Люди, работающие в моем проекте, подумали об удалении EJB между RequestHandler & DAO и напрямую вызвать методы DAO из RequestHandler.Удаляющие EJB улучшают производительность проекта?

Мои аргументы в этом вопросе: как мы можем думать об удалении EJB из проекта, который сам имеет базовую структуру как EJB !!!

Пожалуйста, сообщите о правильном решении, требуемом для повышения производительности во время развертывания. & также сообщите другим способом повысить скорость работы &.

ответ

1

Я работал над несколькими проектами, в которых удаление EJB значительно улучшилось.

Для меня использование EJB - это повышение производительности и качества решения, которое вы производите, а не заботы о производительности. Обычно производительность не является большой проблемой, но если вы можете на нее наложить аппаратное обеспечение и использовать облачное/распределенное решение, которое стоит меньше, чем раньше. то есть он может быть дешевле, чем тратить больше времени на разработку.

1

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

0

невозможно ответить на вопрос без информации. однако, если вы не используете службы ejb для чего-либо, вы можете также избавиться от них. маловероятно, что причиной вызова вашего dao через ejb в первую очередь было использование CMT, поэтому, если вы выбрасываете ejb, вам нужно обрабатывать транзакции другими способами.

В общем, мой совет - попытаться выяснить, что вопрос/проблема действительно есть, прежде чем вы начнете искать ответы.

0

В зависимости от того, о каких EJB вы говорите.

Сессионные бобы: Наличие им или не будет иметь никакого влияния на производительность.

Сущность Бобы: Сущность бобы могут оказывать резкое влияние на производительность. Я использовал бы их в ситуации, когда вы имеете дело со сложными транзакциями при создании, удалении или обновлении вызовов (C R UD). В ситуациях, когда я просто вызываю запрос (C R UD), который возвращает 1000 записей, я могу переключиться на чистый JDBC.

Многие контейнеры JPA/EJB в наши дни довольно умны, поэтому, возможно, они могут делегировать проблемы производительности на уровень базы данных.

Например: если я возвращаю 10000 объектов клиента, и каждый клиент имеет несколько адресов, я мог бы присоединиться к объектам клиента и адреса в слое EJB. Это может быть так же быстро, как создание соединения на уровне базы данных и возврат данных в виде представления, если контейнер EJB достаточно умен.

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