| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 запрещается его редактировать. Это классические вещи, посмотрите материалы в сети. |