Имя: Пароль:
1C
1С v8
Удаление зависшей блокировки
0 etlau
 
15.01.15
12:50
Дано:
Сервер на MSSQL 8.3

Проблема:
Зависла блокировка одной базы, не привязана ни к соединению, ни к сеансу.
Перезапустить агент нельзя, много людей работает.

Никак не получается эту блокировку снять.

Вопрос:
Можно ли как-то это сделать через COM объект, по аналогии с функцией
GetLocks(), которая получает для соединения все блокировки?
Или можно ли это сделать редактированием каких-то записей в MSSQL?
Или третьим путем?
1 Cube
 
15.01.15
12:51
(0) Создай новый рабочий процесс. Старый рабочий процесс сделай неиспользуемым и, после того, как все пользователи переползут на новый процесс, грохни старый процесс.
2 Necessitudo
 
15.01.15
12:52
А что такое зависшая блокировка?
3 etlau
 
15.01.15
12:54
Блокировка осталась в результате какого-то нештатного выключения.
Висит в списке и не дает, например, обновить базу.
4 Зеленый пень
 
15.01.15
13:02
(1) А в 8.3 разве такой фокус возможен?
5 Cube
 
15.01.15
13:04
(4) ХЗ...
6 ilpar
 
15.01.15
13:05
(4) не возможен
7 etlau
 
15.01.15
13:10
(1) Попробовал немного по другому методу, сделал приоритет по памяти, старые рабочие процессы закрылись сами через пару минут.

Не помогло, блокировка висит.

блокировка выглядит в списке блокировок как
БД(сеанс, ххх_база, разделяемая) пусто пусто... 14.01.2015 18:00:00
8 ВасяЧ
 
15.01.15
14:25
перезапустить сервер 1С, не?
9 etlau
 
15.01.15
16:11
Да, но не хотелось.
Видимо, иного метода нет.
10 leonidkorolev
 
15.01.15
16:22
А если попробовать грохнуть менеджер транзакционных блокировок. Но это уже крайний вариант перед ребутом сервера.
11 Defender77
 
15.01.15
16:40
У меня такая же фигня происходит изредка.
Пока помогало только снятие процесса rphost.
Удаление сессий на SQL не помогает
12 Armando
 
15.01.15
16:42
(10) Это не транзакционная блокировка
13 Armando
 
15.01.15
16:44
(11) SQL тут не причем. Это блокировка сеанса зависает.

На партнерском представители 1С писали, что только перезапуск сервера спасет.
Тож страдаем от этого
14 leonidkorolev
 
15.01.15
16:54
(12)(13) Есть подозрение что за все блокировки отвечает отдельный менеджер. Вот этот.

http://screencast.com/t/xbSDnVm086

Можно попробовать его грохнуть перед ребутом.
Мне как-то пару раз помогало.
15 Armando
 
15.01.15
17:01
(14) Как в 8.3 его грохнут?
16 leonidkorolev
 
15.01.15
17:04
(15) В свойствах менеджера подглядываем ид процесса ОС

http://screencast.com/t/69vQp1lcxlwE
17 Armando
 
15.01.15
17:16
(16) для этого должен стоять флаг, чтоб для каждого сервиса свой менеджер был. По умолчанию он выключен.
18 leonidkorolev
 
15.01.15
17:17
(17) Чем-то этот флаг плох? У меня он всегда стоит, нареканий нет.
19 Armando
 
15.01.15
17:21
(18) С партнерского:
"Менять настройки по-умолчанию мы рекомендуем если есть какая-то проблема.

Галочка "Менеджер под каждый сервис" существенно увеличивает накладные раходы в кластере и создана для диагностики а не для оптимизации."
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший