Имя: Пароль:
1C
1С v8
"конфликт блокировок при выполнении транзакции" - как узнать кто и почему заблокировал регистр
0 Homer
 
22.12.16
11:17
SQL 2014, платформа 8.2.19.90
Началось это дело со вчерашнего дня. Стали падать ошибки блокировки на некоторые документы. Перезагрузили сервер, помогло. Сегодня снова аналогичные блокировки.
Сообщение: конфликт блокировок при выполнении транзакции превышено максимальное время ожидания.
Знаю какой регистр и какие измерения заблокированы. Теперь вопрос кто это сделал и как.
1 Мимохожий Однако
 
22.12.16
11:19
Мало места.
2 Господин ПЖ
 
22.12.16
11:19
ТЖ настраивай
3 мистер игрек
 
22.12.16
11:20
(0) На конслои не видно?
4 Homer
 
22.12.16
11:23
(1) место есть.
(3) Нет.
5 Вафель
 
22.12.16
11:26
проще цуп поднять, там все автоматом
6 Господин ПЖ
 
22.12.16
11:30
(5) он же платный
7 Homer
 
22.12.16
11:30
(5) ЦУП куплен но не установлен(
Если его поставить там можно будет увидеть кто блокирует (конкретный пользователь)
8 Бледно Золотистый
 
22.12.16
11:32
(7) Можно прям в ТЖ это смотреть, ЦУП просто разберет его в более удобный вид
9 Одинесю
 
22.12.16
11:46
Есть скрипт в инете для скула, он покажет точно, проверено. Но еще можно по консоли агента сервера посмотреть, подумать
10 Вафель
 
22.12.16
11:55
так я не понял главный вопрос, кто виноват или что делать?
11 Homer
 
22.12.16
12:02
(9) скрипты смотрю, или я нахожу не работающие или у SQL сейчас нет блокировок
(10) Хочется все знать, чтобы предпринять меры к дальнейшему исключению гемора.
Сейчас бы конечно идеально сбросить блокировку, но найти ее не получается
12 Одинесю
 
22.12.16
12:04
(11) в консоли сервера посмотри еще, там тоже видно блокировки
13 Вафель
 
22.12.16
12:04
(9) Судя по тексту - это блокировки сервера 1с
14 Одинесю
 
22.12.16
12:07
(13) Не понял про блокировки сервера))
15 Вафель
 
22.12.16
12:08
(14) управляемые блокировки
16 Жан Пердежон
 
22.12.16
12:09
use <ИмяБазы>;

SELECT
    db.name DBName,
    tl.resource_type,
    CASE WHEN request_type = 'OBJECT' THEN
        OBJECT_NAME(p.OBJECT_ID)
    ELSE
        OBJECT_NAME(tl.resource_associated_entity_id)
    END BlockedObjectName,
    tl.request_session_id,
    wt.blocking_session_id,
    h1.TEXT AS RequestingText,
    h2.TEXT AS BlockingTest,
    tl.request_mode
FROM sys.dm_tran_locks AS tl
    LEFT JOIN sys.databases db ON db.database_id = tl.resource_database_id
    LEFT JOIN sys.dm_os_waiting_tasks AS wt ON tl.lock_owner_address = wt.resource_address
    LEFT JOIN sys.partitions AS p ON p.hobt_id = tl.resource_associated_entity_id
    LEFT JOIN sys.dm_exec_connections ec1 ON ec1.session_id = tl.request_session_id
    LEFT JOIN sys.dm_exec_connections ec2 ON ec2.session_id = wt.blocking_session_id
    CROSS APPLY sys.dm_exec_sql_text(ec1.most_recent_sql_handle) AS h1
    CROSS APPLY sys.dm_exec_sql_text(ec2.most_recent_sql_handle) AS h2
GO
17 Жан Пердежон
 
22.12.16
12:11
покажет блокированный/блокирующий запрос, заблокированную таблицу и ИДшники сессий.
18 Homer
 
22.12.16
12:12
(16) пустая таблица
19 Жан Пердежон
 
22.12.16
12:14
(18) значит прямо сейчас нет ожиданий на блокировках на скуле
20 Одинесю
 
22.12.16
12:14
(18) Значит у тебя блокировки заканчиваются, надо быстрее реагировать) Скорее всего себестоимость рассчитывают, кто это может предположи и к ней, спроси.
21 Homer
 
22.12.16
12:15
Тогда что блокирует таблицы. скуль молчит, консоль 1с молчит
22 Вафель
 
22.12.16
12:16
(19) так это же не скуль
23 Жан Пердежон
 
22.12.16
12:19
(22) где не скуль? здесь не скуль?
http://www.gilev.ru/wp-content/uploads/2013/10/Ошибка-SQL.png
24 Вафель
 
22.12.16
12:27
(23) Так у ТС сообщение
конфликт блокировок при выполнении транзакции превышено максимальное время ожидания
25 Вафель
 
22.12.16
12:27
это конфликт УПРАВЛЯЕМЫХ блокировок
26 Homer
 
22.12.16
12:33
Режим блокировки "Автоматический"
27 Вафель
 
22.12.16
12:35
(26) Точно сооб щение такое тогда? или ты по памяти?
28 rozer76
 
22.12.16
12:37
(0) чот не пойму - ЦУП есть ну и вперед