Вопрос параллелизма Java EE - PullRequest
1 голос
/ 09 марта 2011

Я написал приложение, которое использует bean-компоненты для создания и хранения книг (названий, авторов и т. Д.) В базе данных.Основные функции для добавления и удаления книг реализованы в локальном компоненте без сохранения состояния.

Моя проблема в том, что я не совсем понимаю, как это будет работать одновременно.Если два пользователя хотели бы получить управление управляющим компонентом одновременно, будет ли это работать по умолчанию?И если да, то как именно он обрабатывает параллельные запросы?

Спасибо

Примечание. Поддерживаются только создание и удаление.Так что я полагаю, что здесь нет конфликтов с точки зрения записи и чтения!

Ответы [ 3 ]

3 голосов
/ 09 марта 2011

Они получат другой экземпляр вашего управляющего компонента. Это будет работать по умолчанию, если ваш управляющий компонент действительно не имеет состояния.

Параллелизм обрабатывается базой данных и ее поддержкой транзакций. Если транзакция пытается изменить книгу, которая удаляется другой параллельной транзакцией (например), одна из транзакций откатится из-за SQLException, выданного драйвером базы данных при фиксации транзакции.

3 голосов
/ 09 марта 2011

Может быть только один вызывающий поток на экземпляр EJB в данный момент времени. Контейнеры EJB (в большинстве случаев) объединяются в контейнере: если два клиента вызывают один и тот же метод (или разные методы для одного и того же типа EJB), то контейнеру будут предоставляться разные экземпляры, или одному придется ждать, пока один экземпляр не будет готов обрабатывать его вызов.

0 голосов
/ 09 марта 2011

Какую клиентскую технологию вы используете?

Если вы используете веб-интерфейс, вы можете использовать шаблон шлюза (сессионный компонент с сохранением состояния и расширенный контекст устойчивости, см. «Шаблоны реального мира Java EE - переосмысление передового опыта» Адама Бина) и просто вернуть присоединенныйentity.

Если у вас есть удаленный клиент, вы, вероятно, захотите вернуть DTO с бизнес-ключом, который однозначно идентифицирует объект.

...