Гость
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Работа с таблицей блокировок / 24 сообщений из 24, страница 1 из 1
09.10.2014, 09:21
    #38771198
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
Ранее всегда использовали "неразрывное" соединение с Каше и для работы с блокировками хватало возможностей команды LOCK...

Теперь перешли на работу по схеме "подключился, взял информацию или выполнид действия, отключился". Но теперь не понятно работает ли кто-то еще с такой же информацией или нет не понятно...

Возможен ли вариант работы с таблицей блокировок "без job"? Т.е. просто записать в нее некую информацию, для других клиентов, дабы можно было понять, что некто уже работает с некой информацией... И иметь возможность потом такую информацию удалять, когда "информация" освободилась...

Под "информацией" можно, для ясности, врять ту же программу... Или некий подузел какого-то глобала...
----------
Cache for Windows (x86-64) 2012.2.2 (Build 801) Fri Dec 7 2012 12:08:23 EST
...
Рейтинг: 0 / 0
09.10.2014, 09:59
    #38771248
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
Так же недавно услышал про "виртуальные" блокировки... Что это такое и как с этим работать?
...
Рейтинг: 0 / 0
09.10.2014, 11:31
    #38771408
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
krvsa,

Сергей, относись к данным как к данным, а к блокировкам как к блокировкам. Добавь к данным еще одну составляющую "с этим работает такой-то пользователь".
...
Рейтинг: 0 / 0
09.10.2014, 11:43
    #38771425
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
Пишешь свою установку и проверку блокировок, там устанавливается определнное значение в глобале, и проверяется свободно ли оно, при освобождении блокировки, снимаешь значение.
...
Рейтинг: 0 / 0
09.10.2014, 11:47
    #38771434
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
ну яотносись к данным как к данным, а к блокировкам как к блокировкам. Добавь к данным еще одну составляющую "с этим работает такой-то пользователь".
А "сброс" кто будет делать при аварийных случаях?
В этом подходе велика вероятность, что информация о "занятости" этой "информации" не будет удаляться при тех же выключениях серверов или клиетов... При сбоях в сети...
Пока используем "промежуточный" вариант, запоминая хоролог последнего изменения... При сохранении изменения клиенту выдается сообщение, что "информация" уже поменялась с его последнего "прочтения" оной...
Но это не всех пользователей устраивает... Им больше импонирует "старый" вариант с блокировками. Тогда просто запрещалось изменение, кем-то занятой, "информации". А кто занял - можно посмотреть в портале.

Блокировки в этих случаях ведут себя лучше. Да и посмотреть их не составляет особого труда в том же Портале управления... Блокировку можно там же удалить, если она осталась из-за какого-то сбоя...
...
Рейтинг: 0 / 0
09.10.2014, 11:57
    #38771456
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
krvsaну яотносись к данным как к данным, а к блокировкам как к блокировкам. Добавь к данным еще одну составляющую "с этим работает такой-то пользователь".
А "сброс" кто будет делать при аварийных случаях?
Добавь операцию "игнорировать занятость и взять рычаги танка на себя, ибо тот пользователь не в состоянии адекватно отреагировать, ну что же поделать, планета продолжает крутиться".
...
Рейтинг: 0 / 0
09.10.2014, 12:00
    #38771466
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
Можно даже еще кнопку добавить "ой, ромалэ, правду говорю, у меня и права есть".
...
Рейтинг: 0 / 0
09.10.2014, 12:02
    #38771474
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
Ну и какие проблемы добавить свой интерфейс, по отображению и управлению своими блокировками
можно сохранять PID процесса, который поставил блокировку, и при проверке, проверять еще и на то что этот процесс действительно живой. а если не живой, значит уже свободно место
...
Рейтинг: 0 / 0
09.10.2014, 12:19
    #38771508
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
krvsa ,

AutoLock (c 2014.1)
krvsaТеперь перешли на работу по схеме "подключился, взял информацию или выполнид действия, отключился". Но теперь не понятно работает ли кто-то еще с такой же информацией или нет не понятно...Не совсем понял почему.
...
Рейтинг: 0 / 0
09.10.2014, 12:19
    #38771509
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
DAiMorНу и какие проблемы добавить свой интерфейс, по отображению и управлению своими блокировками
можно сохранять PID процесса, который поставил блокировку, и при проверке, проверять еще и на то что этот процесс действительно живой. а если не живой, значит уже свободно место
Если там с обрывами то PID процесса оно как-бы ни о чем. Нужен ID пользователя. А проверить что пользователь живой может только другой пользователь.
...
Рейтинг: 0 / 0
09.10.2014, 13:31
    #38771636
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
ну яМожно даже еще кнопку добавить "ой, ромалэ, правду говорю, у меня и права есть".
...
Рейтинг: 0 / 0
09.10.2014, 13:35
    #38771644
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
servit AutoLock (c 2014.1)
Не доросли еще до таких цыфр...
Но почитаю, как смогу.

servitkrvsaТеперь перешли на работу по схеме "подключился, взял информацию или выполнид действия, отключился". Но теперь не понятно работает ли кто-то еще с такой же информацией или нет не понятно...Не совсем понял почему.
По двум основным причинам...
1. Экономия количества лицензий. Лицензия нужна только на короткий момент подключения, далее работа идет только на клиенте...
2. Исходя из п.1 добавляем возможность работы не только в разных областях одного сервера, но и на любом другом сервере (так же во всех областях).
Хотя все сводится к одной по большому счету...
...
Рейтинг: 0 / 0
09.10.2014, 13:39
    #38771650
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
ну яНужен ID пользователя. А проверить что пользователь живой может только другой пользователь.
При "одновременной" работе нескольких пользователей, подключившийся пользователь запросто может никого не увидеть... Поскольку все они прочитали, что им нужно и работают с этим.
На сервере о них нет никакой информации... Пока...

Вот и думаем, как ее там оставить...

Т.е. пока что-то записать в таблицу блокировок "без job" нет вариантов? У нас Кащеи с 2010-тых по 2012-тые...
...
Рейтинг: 0 / 0
09.10.2014, 13:42
    #38771654
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
И спасибо всем, кто откликается на темку.
...
Рейтинг: 0 / 0
09.10.2014, 13:47
    #38771665
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
servit AutoLock (c 2014.1)
servit , а вот такой способ блокировки останется при отключении соединения с сервером? Это какой-то "аналог" команды lock ? Или это она и есть, только в "классовой обвязке"?
...
Рейтинг: 0 / 0
09.10.2014, 14:00
    #38771695
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
krvsaа вот такой способ блокировки останется при отключении соединения с сервером?Теперь мне ясен ответ на мой вопрос.
Т.е.krvsa<...> по схеме " подключился , взял информацию или выполнид действия, отключился "., но при этом продолжает работать в рамках некоей виртуальной сессии.
В таком случае таблица блокировок здесь не к месту.krvsaИли это она и есть, только в "классовой обвязке"?Именно так.
...
Рейтинг: 0 / 0
09.10.2014, 14:23
    #38771748
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
servitТ.е.krvsa<...> по схеме " подключился , взял информацию или выполнид действия, отключился "., но при этом продолжает работать в рамках некоей виртуальной сессии.
Да, так.

servitВ таком случае таблица блокировок здесь не к месту.
Ясно...

servitkrvsaИли это она и есть, только в "классовой обвязке"?Именно так.
Ясно...
...
Рейтинг: 0 / 0
09.10.2014, 14:29
    #38771766
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
Значит остается только работать с глобалом вида s ^CacheTemp("задача","имя_области","информация")=""Он удалится при выключении сервера... Киляние узла даст остальным доступ...
Ну и принцип "ой, ромалэ, правду говорю, у меня и права есть" так же никто не отменял.
...
Рейтинг: 0 / 0
09.10.2014, 17:25
    #38772126
MaWr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
krvsaЗначит остается только работать с глобалом вида s ^CacheTemp("задача","имя_области","информация")=""Он удалится при выключении сервера... Киляние узла даст остальным доступ...
Ну и принцип "ой, ромалэ, правду говорю, у меня и права есть" так же никто не отменял.

Если коннект не держится с сервером постоянно открытым, то перезагрузка сервера, в идеале, не должна оказывать на клиента влияния. И клиент не должен замечать эту перезагрузку.
...
Рейтинг: 0 / 0
09.10.2014, 19:22
    #38772293
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
MaWr , ты сам-то понял, что написал?
...
Рейтинг: 0 / 0
10.10.2014, 07:44
    #38772568
MaWr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
krvsa MaWr , ты сам-то понял, что написал?
А что тут непонятного?
При перезагрузке сервера, клиентское приложение, не держащее постоянный коннект к базе, не будет замечать эту самую перезагрузку.

Оператор сидит забивает большую формочку. Коннекта к базе нет.
Пока он забивал ее сервер перезагрузили.
При отправке формы на сервер, он уже опять запущен -> клиентское приложение перезагрузку не заметило.
...
Рейтинг: 0 / 0
10.10.2014, 08:29
    #38772604
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
MaWrПока он забивал ее сервер перезагрузили.
При отправке формы на сервер, он уже опять запущен -> клиентское приложение перезагрузку не заметило.
...
Рейтинг: 0 / 0
10.10.2014, 12:15
    #38772975
Petr0vi4444
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
Если данные слабо связаны и при сохранении не происходят изменения еще в 10 местах, то можно сделать такую систему:
При попытке сохранить данные на сервер проверять версию данных.
Если их уже кто-то изменил, предлагать:
1. Загрузить себе новую версию с потерей сделанных изменений
2.1 Если конфликты есть (оба пользователя изменили одно и тоже поле): открыть форму для решения конфликтов
2.2 Если конфликтов нет: слить данные вместе

Видел такое в RedMine.
...
Рейтинг: 0 / 0
10.10.2014, 13:47
    #38773112
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с таблицей блокировок
Petr0vi4444 , вопрос не в том "как делать без блокировок?"... Вопрос "можно ли как-то использовать таблицу блокировок вот при таком способе соединения"...
Ответ на него уже получен.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Работа с таблицей блокировок / 24 сообщений из 24, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]