|
|
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, как правильно реализуется следующий функционал в десктоп приложении: пользователь открыл окошко, правит в нем данные, второй пользователь на своем компьютере тоже открыл это окошко и так же пытается править данные. Вопрос! Как сделать так, чтобы у второго пользователя где-то в уголочке отображалась запись, типа: идет редактирование пользователем таким-то... Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 17:46:40 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Добрый день, JulT! > Подскажите пожалуйста, как правильно реализуется следующий функционал в > десктоп приложении: > пользователь открыл окошко, правит в нем данные, второй пользователь на > своем компьютере тоже открыл это окошко и так же пытается править > данные. Вопрос! Как сделать так, чтобы у второго пользователя где-то в > уголочке отображалась запись, типа: идет редактирование пользователем > таким-то... Например через пассивную блокировку- у изменяемого объекта в БД проставляется ссылка на того, кто редактирует и второму пишется "нельзя менять запись, занятую пользователем ...". Вообще ответ на вопрос "что делать, если да пользователя одновременно изменили одно и то же поле на разные значения" очень нужно дать до разработки. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 17:54:34 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Проще сделать запрет на редактирование в один момент времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 17:54:53 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
TrogloditПроще сделать запрет на редактирование в один момент времени. Проще чем что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 18:09:52 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
JulTу второго пользователя где-то в уголочке отображалась запись, типа: идет редактирование пользователем таким-то... самое интересное дальше.....что они дальше делают? Если хибер , то LockMode.UPGRADE или блокировать чтобы второй не мог взять на редактирование LockMode.UPGRADE_NOWAIT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 18:16:18 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Petro123JulTу второго пользователя где-то в уголочке отображалась запись, типа: идет редактирование пользователем таким-то... самое интересное дальше.....что они дальше делают? Если хибер , то LockMode.UPGRADE или блокировать чтобы второй не мог взять на редактирование LockMode.UPGRADE_NOWAIT а если не хибер, а оракл топлинк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 18:30:20 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Petro123LockMode.UPGRADE или блокировать чтобы второй не мог взять на редактирование LockMode.UPGRADE_NOWAIT Это что пессимистичная блокировка на базу будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 18:32:00 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, да. (как утверждает Хибер). Для оракла будет добавлено select for update nowait и второй попытавшийся сделать запрос получит raise ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 18:33:53 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
JulTПодскажите пожалуйста, как правильно реализуется следующий функционал в десктоп приложении: пользователь открыл окошко, правит в нем данные, второй пользователь на своем компьютере тоже открыл это окошко и так же пытается править данные. Вопрос! Как сделать так, чтобы у второго пользователя где-то в уголочке отображалась запись, типа: идет редактирование пользователем таким-то... Спасибо. В теории это называют оптимистическая блокировка . Как реализовать - десятки способов наверное. Но надо отталкиваться от возможностей самой БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 18:34:07 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Petro123, на коммит автоматом снимается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 18:34:24 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
mayton, если топлинк поддерживает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 18:35:08 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
maytonВ теории это называют оптимистическая блокировка . Как реализовать - десятки способов наверное. Но надо отталкиваться от возможностей самой БД. Но есть нюанс. Оптимистичная блокировка на самом документе приведёт к тому, что второй пользователь при сохранении получит исключение версии. А это не сосвем то что нужно. Нужно вводить сущность-блокировку, которая будет захватываться, как предложил GKS_Samara. И вот на ней уже реализовать оптимистичную блокировку. Либо, если база позволяет. Можно попробовать пессимистичную блокировку, но на базе она ведь удерживает транзакцию. Работать будет только в 2х звенке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 18:40:56 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
А что, работа через toplink подразумевает запрет на использование JDBC ? Сори я не в курсе. Не знаком с топлинк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 18:41:07 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Petro123Petro123, на коммит автоматом снимается Юзер открыл UI вечерком - запустили транзакцию. И ушел домой. А потом уехал в отпуск. И что в базе поддерживать транзакцию на несколько недель? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 18:41:59 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Честно говоря без примера мне трудно разобраться. Использую оракл топлинк, субд майскул ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 19:48:38 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
JulTЧестно говоря без примера мне трудно разобраться. Использую оракл топлинк, субд майскул Тут даже с примером не просто будет разобраться. Начните с изучение теории про оптимистичные и пессимистичные блокировки. Затем посмотрите как они реализуются в базе данных. После этого решайте как именно вы хотите сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 20:17:03 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
BlazkowiczPetro123Petro123, на коммит автоматом снимается Юзер открыл UI вечерком - запустили транзакцию. И ушел домой. А потом уехал в отпуск. И что в базе поддерживать транзакцию на несколько недель? ну, дык, во ВСЕХ способах есть недостатки. Я вам в оптимистической их тоже назову. ЗЫ. У нас проблема длинных решалась просто. Продукт стоил дешевле, т.к. писать ничего не надо. Если кто заснул за компом - есть админ и телега руководству. ОНО решает, за какой вид блокировки платить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 21:42:15 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
JulTЧестно говоря без примера мне трудно разобраться. Использую оракл топлинк, субд майскул - сначала найди пример В ВЕБ (скрин) того что ты хочешь. Например, если 10 челов захотели править, то 10 строк в углу? - потом посмотри сабж у хибера (он же флагман) и доложи руководству)) - потом напищи тут результаты)) Удачи! ______________________________________________ "Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 21:46:37 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Petro123Я вам в оптимистической их тоже назову. Весь во внимании. На самом деле здесь классическими блокировками не обойтись. Нужно бизнес сущность вводить. Никому ведь не нужно узать о том что запись залочена после всех сделаных изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 22:22:59 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, если ему нужно ФИО, то конечно нужно писать, и не мало. Просто, по сабжу видно, что он этого не представляет....И не напишет.... Т.к. - писать надо (в отличии от хибера no_wait or update) - структуру БД менять надо - по минимуму надо добавлять к каждой записи колонку ФлагБлокировки и ФИОналожившего её. - изменится ВИ или Преценденты, т.к. надо будет "Брать на редактирование документ\сущность" - и т.д. Я ещё не в курсе, работает ли в хибере то что я написал выше по документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 22:42:06 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
авторЮзер открыл UI вечерком - запустили транзакцию. И ушел домой. А потом уехал в отпуск. И что в базе поддерживать транзакцию на несколько недель? Можно убивать долгие транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 22:47:47 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪавторЮзер открыл UI вечерком - запустили транзакцию. И ушел домой. А потом уехал в отпуск. И что в базе поддерживать транзакцию на несколько недель? Можно убивать долгие транзакции. конечно можно. Любой админ справится. У нас вообще radmin админы сволочи ставили (удалённый рабочий стол смотрели). )) Нафига мне писать то, с чем должен справляться ОРМ или СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 22:53:51 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
конечно можно. Любой админ справится. Я имею в виду автоматически. Юзер открыл UI вечерком - запустили транзакцию. И ушел домой. А потом уехал в отпуск. И что в базе поддерживать транзакцию на несколько недель? Обычно в корпоративном окружении требуют, чтобы сотрудник уходя домой делал логаут (чтобы можно было установить софт и апдейты при следующем логине). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 22:58:13 |
|
||
|
Как отследить правку данных в десктоп приложении
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪ, я утрирую, конечно. Просто хотел обратить внимание, что пессимистичная блокировка требует таймаута. Т.е. лузер заказывает лок на документ и у нас висит поток и блокировка на базе. Юзер без понятия что ему делать пока блокировка не отвалится по таймауту. Хотя NOWAIT, скорее всего, тоже вариант, если база позволяет. Правда нужно следить чтобы batch таски по одному место не пошли, когда юзеры записей налочат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2013, 23:04:20 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=247&tid=2130096]: |
0ms |
get settings: |
16ms |
get forum list: |
23ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
50ms |
get topic data: |
19ms |
get forum data: |
5ms |
get page messages: |
104ms |
get tp. blocked users: |
3ms |
| others: | 277ms |
| total: | 511ms |

| 0 / 0 |
