Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Архитектура EJB / 2 сообщений из 2, страница 1 из 1
20.11.2007, 08:03
    #34950585
Rust()
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Архитектура EJB
Подскажите, пожалуйста, готовый шаблон такой задачи: приложение использует EJB, который реализует логику базы данных (вызов sql запросов к БД, обработка результатов). Вызовы методов EJB необходимо макисимально оптимизировать в скорости. Приложение ориентировано на многопользовательский режим.
Какого типа должен быть EJB? (stateless или statefull). Где должно хранится соединение с БД, когда оно должно закрываться и открываться? Стоит ли использоватеь PreparedStatement для ускорения выполнения запросов и как? Как обеспечить многопоточность, разграничение одновременного вызова метода?
...
Рейтинг: 0 / 0
20.11.2007, 09:20
    #34950674
Архитектура EJB
Вообще-то вопрос не для этой группы.
Однозначно читать документацию по архитектуре J2EE.

1. По возможности нужно использовать Stateless-компоненты.
2. Для работы с СУБД нужно средствами сервера приложений организовать пул соединений, а в приложении получать соединение из пула, выполнять запрос/запросы и возвращать соединение в пул(закрывая соединение).
3. Желательно пользоваться PreparedStatement, т.к. динамические запросы кешируются как самим сервером СУБД, так и сервером приложений. Но чтобы взялся запрос из кеша он должен посимвольно совпадать с уже готовым. Если в запрос явно подставлены значения параметров и они меняются при каждом новом запросе, то с т.з. СУБД это будут разные запросы. Если же использовать PreparedStatement с подстановочными символами для значений, то текст запроса при разных параметрах будет совпадать.
При этому нужно не забывать смотреть на план выполнения запроса. В зависимости от текста запроса может быстрее выполняться запрос с явно подставленными значениями параметров.
4. Многопоточность обеспечивает сервер приложений, но разработчик должен следовать правилам написания классов. Например для сервлетов один экземпляр сервлета может обслуживать N-запросов, поэтому в классе сервлета нельзя использовать private-переменные. Все это есть в спецификациях J2EE.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Архитектура EJB / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]