powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / check с условием, выходящим за пределы одной записи: работает "через раз"
6 сообщений из 31, страница 2 из 2
check с условием, выходящим за пределы одной записи: работает "через раз"
    #38593586
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидhvladА кто будет регулировать конкурентный доступ ? И, главное - как ?Перед тем, как затолкать в GTT очередную пару "Изделие, Кол-во", транзакция создает контекстную переменную с именем = 'part_' || :this_part_id и значением = cast( :this_amount as varchar).
Затем она пробегает по mon$context_variables where mon$variable_name = 'part_' || :this_part_id и суммирует ВСЕ количества, которые сейчас там имеются по этому изделию.И пока она бегает, туда параллельно добавляют и убирают строки.

Это было бы смешно, если бы не было так нудно...
...
Рейтинг: 0 / 0
check с условием, выходящим за пределы одной записи: работает "через раз"
    #38593986
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидпишет в свою "корзину покупателя" 8 штук (но еще не коммитит)почему не коммитит? шоб веселей жилось?
ТаблоидНо это "видно" и есть грязное чтениеты путаешь бизнес транзакции и транзакции SQL сервера.

Если коммитить все, то не возникнет желания заниматься грязным чтением. внес клиент запись в свою корзинку, надо ее закоммитить и на регистр остатков можно навесить типа софт резерв.
...
Рейтинг: 0 / 0
check с условием, выходящим за пределы одной записи: работает "через раз"
    #38594110
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЭто было бы смешно, если бы не было так нудно...Один раз что-то подобное всё-таки получилось . Да, там другая задача, но принцип тот же - через контексты. Правда, еще и db-level триггер нужен :-)
Как будет время - попробую сделать что-то на тему "неотрицательных остатков", как знать - вдруг попрёт...
...
Рейтинг: 0 / 0
check с условием, выходящим за пределы одной записи: работает "через раз"
    #38594113
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevskyвнес клиент запись в свою корзинку, надо ее закоммитить и на регистр остатков можно навесить типа софт резерв.Кто будет снимать этот soft-reserve в случае выпадения юзера, его создавшего, в долгую нирвану ? Доверять проверку на неактивность экземпляру приложения, который у него запущен, - нельзя (оно вообще может зависнуть или отвалиться от сети и проч).
Запускать по крону задание - это ставить приложение в зависимость от внешней среды (как минимум - от факта, что служба планировщика действительно работает, а также что само задание в ней не "почикали" случайно). Не очень гут, КМК...
ЗЫ. Кроме того, когда задание на грохание мягких резервов отработает и удалит к-л резерв, приложение должно непременно отреагировать на сиё, предупредить юзера. А это значит - отдельный поток с периодическим контролем записей, которые добавлялись юзером в корзину, с проверкой: "как там, вас не грохнули еще ?"
...
Рейтинг: 0 / 0
check с условием, выходящим за пределы одной записи: работает "через раз"
    #38594117
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидКто будет снимать этот soft-reserve в случае выпадения юзера, его
создавшего, в долгую нирвану ?
Ты же сам говорил: менеджер с более высоким приоритетом. Кроме того юзер же обычно не на
кладбище выпадает, рано или поздно он залогинится обратно и либо продолжит, либо таки
отменит свой заказ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
check с условием, выходящим за пределы одной записи: работает "через раз"
    #38594169
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидЗапускать по крону заданиеЗачем? Достаточно тайштампа рядом с самим резервом, если ему менее 15 минут, то его никто не снимает, далее только менеджер, через полчаса-час уже могут снимать все кому не лень. На то оно и софт, что оно является периодическим реквизитом, а не списанием товара со склада.
Таблоидвыпадения юзера, его создавшего, в долгую нирвану ?плевать на юзера, время наше все, кто не успел, тот опоздал.

Периоды времени выбраны "с потолка", опять таки они могут зависеть от привилегий юзера, анониму резерв 5 минут, продвинутому 15, постоянному клиенту час и т.п.
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / check с условием, выходящим за пределы одной записи: работает "через раз"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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