Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Работа нескольких клиентов с бд


Автор: Alenka_ 31.10.2008, 00:59
Всем привет. Подскажите, пожалуйста, какими средствами можно синхронизировать работу нескольких клиентов с базой данных?
Как один клиент может узнать что какая-либо запись в базе редактируется на другом клиенте и заблокировать ее у себя? Клиенты- это UI на swing, на сервере EJB, jboss. 

Автор: powerOn 31.10.2008, 03:14
1) Транзакции.
2) Блокировки.

Все это умеют EJB. Смотрите документацию.

Автор: Alenka_ 10.11.2008, 22:59
А если редактирование ведется на клиенте с последующим сохранением в базу по кнопке? Как можно узнать, что клиент х начал редактирование? Например, вызвал форму для редактирования? (В этот момент эта же запись, отображаемая на других клиентах должна блокироваться)

Автор: powerOn 10.11.2008, 23:26
Ну так пессимистическая блокировка Вам поможет. При получении формы для редактирования клиент1 проверяет не заблокирован ли ресурс и если нет, блокирует его. При этом если клиент 2 попытается открыть форму для редактирования сначала также идет проверка "а не заблокирован ли ресурс", если заблокирован, то клиенту2 запрещается его редактировать. Это классические вещи, посмотрите материалы в сети.
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)