|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
Ранее всегда использовали "неразрывное" соединение с Каше и для работы с блокировками хватало возможностей команды LOCK... Теперь перешли на работу по схеме "подключился, взял информацию или выполнид действия, отключился". Но теперь не понятно работает ли кто-то еще с такой же информацией или нет не понятно... Возможен ли вариант работы с таблицей блокировок "без job"? Т.е. просто записать в нее некую информацию, для других клиентов, дабы можно было понять, что некто уже работает с некой информацией... И иметь возможность потом такую информацию удалять, когда "информация" освободилась... Под "информацией" можно, для ясности, врять ту же программу... Или некий подузел какого-то глобала... ---------- Cache for Windows (x86-64) 2012.2.2 (Build 801) Fri Dec 7 2012 12:08:23 EST ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 09:21 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
Так же недавно услышал про "виртуальные" блокировки... Что это такое и как с этим работать? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 09:59 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
krvsa, Сергей, относись к данным как к данным, а к блокировкам как к блокировкам. Добавь к данным еще одну составляющую "с этим работает такой-то пользователь". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 11:31 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
Пишешь свою установку и проверку блокировок, там устанавливается определнное значение в глобале, и проверяется свободно ли оно, при освобождении блокировки, снимаешь значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 11:43 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
ну яотносись к данным как к данным, а к блокировкам как к блокировкам. Добавь к данным еще одну составляющую "с этим работает такой-то пользователь". А "сброс" кто будет делать при аварийных случаях? В этом подходе велика вероятность, что информация о "занятости" этой "информации" не будет удаляться при тех же выключениях серверов или клиетов... При сбоях в сети... Пока используем "промежуточный" вариант, запоминая хоролог последнего изменения... При сохранении изменения клиенту выдается сообщение, что "информация" уже поменялась с его последнего "прочтения" оной... Но это не всех пользователей устраивает... Им больше импонирует "старый" вариант с блокировками. Тогда просто запрещалось изменение, кем-то занятой, "информации". А кто занял - можно посмотреть в портале. Блокировки в этих случаях ведут себя лучше. Да и посмотреть их не составляет особого труда в том же Портале управления... Блокировку можно там же удалить, если она осталась из-за какого-то сбоя... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 11:47 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
krvsaну яотносись к данным как к данным, а к блокировкам как к блокировкам. Добавь к данным еще одну составляющую "с этим работает такой-то пользователь". А "сброс" кто будет делать при аварийных случаях? Добавь операцию "игнорировать занятость и взять рычаги танка на себя, ибо тот пользователь не в состоянии адекватно отреагировать, ну что же поделать, планета продолжает крутиться". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 11:57 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
Можно даже еще кнопку добавить "ой, ромалэ, правду говорю, у меня и права есть". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 12:00 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
Ну и какие проблемы добавить свой интерфейс, по отображению и управлению своими блокировками можно сохранять PID процесса, который поставил блокировку, и при проверке, проверять еще и на то что этот процесс действительно живой. а если не живой, значит уже свободно место ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 12:02 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
krvsa , AutoLock (c 2014.1) krvsaТеперь перешли на работу по схеме "подключился, взял информацию или выполнид действия, отключился". Но теперь не понятно работает ли кто-то еще с такой же информацией или нет не понятно...Не совсем понял почему. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 12:19 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
DAiMorНу и какие проблемы добавить свой интерфейс, по отображению и управлению своими блокировками можно сохранять PID процесса, который поставил блокировку, и при проверке, проверять еще и на то что этот процесс действительно живой. а если не живой, значит уже свободно место Если там с обрывами то PID процесса оно как-бы ни о чем. Нужен ID пользователя. А проверить что пользователь живой может только другой пользователь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 12:19 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
ну яМожно даже еще кнопку добавить "ой, ромалэ, правду говорю, у меня и права есть". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 13:31 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
servit AutoLock (c 2014.1) Не доросли еще до таких цыфр... Но почитаю, как смогу. servitkrvsaТеперь перешли на работу по схеме "подключился, взял информацию или выполнид действия, отключился". Но теперь не понятно работает ли кто-то еще с такой же информацией или нет не понятно...Не совсем понял почему. По двум основным причинам... 1. Экономия количества лицензий. Лицензия нужна только на короткий момент подключения, далее работа идет только на клиенте... 2. Исходя из п.1 добавляем возможность работы не только в разных областях одного сервера, но и на любом другом сервере (так же во всех областях). Хотя все сводится к одной по большому счету... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 13:35 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
ну яНужен ID пользователя. А проверить что пользователь живой может только другой пользователь. При "одновременной" работе нескольких пользователей, подключившийся пользователь запросто может никого не увидеть... Поскольку все они прочитали, что им нужно и работают с этим. На сервере о них нет никакой информации... Пока... Вот и думаем, как ее там оставить... Т.е. пока что-то записать в таблицу блокировок "без job" нет вариантов? У нас Кащеи с 2010-тых по 2012-тые... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 13:39 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
servit AutoLock (c 2014.1) servit , а вот такой способ блокировки останется при отключении соединения с сервером? Это какой-то "аналог" команды lock ? Или это она и есть, только в "классовой обвязке"? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 13:47 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
krvsaа вот такой способ блокировки останется при отключении соединения с сервером?Теперь мне ясен ответ на мой вопрос. Т.е.krvsa<...> по схеме " подключился , взял информацию или выполнид действия, отключился "., но при этом продолжает работать в рамках некоей виртуальной сессии. В таком случае таблица блокировок здесь не к месту.krvsaИли это она и есть, только в "классовой обвязке"?Именно так. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 14:00 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
servitТ.е.krvsa<...> по схеме " подключился , взял информацию или выполнид действия, отключился "., но при этом продолжает работать в рамках некоей виртуальной сессии. Да, так. servitВ таком случае таблица блокировок здесь не к месту. Ясно... servitkrvsaИли это она и есть, только в "классовой обвязке"?Именно так. Ясно... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 14:23 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
Значит остается только работать с глобалом вида s ^CacheTemp("задача","имя_области","информация")=""Он удалится при выключении сервера... Киляние узла даст остальным доступ... Ну и принцип "ой, ромалэ, правду говорю, у меня и права есть" так же никто не отменял. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 14:29 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
krvsaЗначит остается только работать с глобалом вида s ^CacheTemp("задача","имя_области","информация")=""Он удалится при выключении сервера... Киляние узла даст остальным доступ... Ну и принцип "ой, ромалэ, правду говорю, у меня и права есть" так же никто не отменял. Если коннект не держится с сервером постоянно открытым, то перезагрузка сервера, в идеале, не должна оказывать на клиента влияния. И клиент не должен замечать эту перезагрузку. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 17:25 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
MaWr , ты сам-то понял, что написал? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2014, 19:22 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
krvsa MaWr , ты сам-то понял, что написал? А что тут непонятного? При перезагрузке сервера, клиентское приложение, не держащее постоянный коннект к базе, не будет замечать эту самую перезагрузку. Оператор сидит забивает большую формочку. Коннекта к базе нет. Пока он забивал ее сервер перезагрузили. При отправке формы на сервер, он уже опять запущен -> клиентское приложение перезагрузку не заметило. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 07:44 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
MaWrПока он забивал ее сервер перезагрузили. При отправке формы на сервер, он уже опять запущен -> клиентское приложение перезагрузку не заметило. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 08:29 |
|
Работа с таблицей блокировок
|
|||
---|---|---|---|
#18+
Если данные слабо связаны и при сохранении не происходят изменения еще в 10 местах, то можно сделать такую систему: При попытке сохранить данные на сервер проверять версию данных. Если их уже кто-то изменил, предлагать: 1. Загрузить себе новую версию с потерей сделанных изменений 2.1 Если конфликты есть (оба пользователя изменили одно и тоже поле): открыть форму для решения конфликтов 2.2 Если конфликтов нет: слить данные вместе Видел такое в RedMine. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 12:15 |
|
|
start [/forum/topic.php?fid=39&msg=38771466&tid=1556792]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 274ms |
total: | 435ms |
0 / 0 |