Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Разблокирование заблокированных документов : Супермаг Плюс (Супермаг 2000)

24.04.2024 9:40


02.05.2012 12:49
OlegON
 
Речь пойдет о злосчастных перезагрузках клиентских рабочих станций, после которого сессия еще некоторое время жива и пользователь получает сообщение, что документ заблокирован им же самим.
Нижеприведенный скрипт не отключает долго работающие запросы, а выкидывает только блокировку документов.
Для тех, кто любит просто копипастить примеры с форума, подчеркну, что так делать НЕ РЕКОМЕНДУЕТСЯ.
Заходим в SQL Plus под supermag и делаем:
Код:
delete from supermag.sslocks where (sid,sernum) in (select sid,serial# from sys.v$session where username=upper('&visuk'));
будет запрошено имя пользователя, блокировки в СМ от которого будут удалены.
Обращаю внимание, что сразу же после работы скрипта надо набрать commit;
Буду рад модификациям, например, можно исключить CP в типе, чтобы пользователя не выкидывало еще раз, например.
02.05.2012 12:55
Mtirt
 
Может лучше это делать по номеру документа?
Правда для весов это способ не подойдет...
02.05.2012 12:59
akonev
 
я предпочитаю конкретные блокировки с указанием ID убивать. редко они у нас блокируются.
видимо в силу того, что у нас две трети магазинов на терминале, и перегруз рабочей станции документы не подвешивает.

весы да... весы все оптом приходится.
02.05.2012 13:39
vdm
 
Я сессию прибиваю, а sslocks супермаг сам чистит.
02.05.2012 13:58
OlegON
 
Да, это у меня midori повисал, а в первом варианте сообщения было, что заморочено все это по нежеланию отдавать sys тем, кто базу не админит, только для того, чтобы прибивать сессии.
05.05.2012 15:50
OlegON
 
И все же я ошибся, у supermag нет прав на v$session, поэтому проще переделать так:
Цитата:
delete from supermag.sslocks where (sid,sernum) in (select sid,serial# from supermag.supermag_sessions where username=upper('&visuk'));
05.05.2012 15:54
Mtirt
 
А почему не так, всё же:
Код:
delete  from Supermag.sslocks t where t.objtype=&MyDocType and t.id=&MyDocID
05.05.2012 16:03
OlegON
 
Пойдет вариант, но если к тебе пришел обиженный Федя, то проще его выкинуть по имени, чем посылать его за номером вида ПН00293022-ИВ0021221
05.05.2012 16:09
Mtirt
 
Ко мне не ходят, мне пишут. И номер документа прислать легко. Ctrl+С - CTRL+V никто не отменял.
Часовой пояс GMT +3, время: 09:40.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.