Вход | Регистрация


1С:Предприятие ::

Метки: 

Как можно узнать, какая таблица блокируется?

Я
   мистер игрек
 
27.12.12 - 12:10
8.2. Конфа самописная.
Есть документ, который двигает регистр бухгалтерии и несколько регистров  по ТМЦ. Он проводится минут 15.
Но за этот момент бухгалтер по банку хочет провести документ платежное поручение входящее. Но выходить ошибка "Конфликт блокировок при выполнении транзакции."
По логике. Эти два документа работают только с одним общим регистром, регистром бухгалтерии.
Получается блокируется регистр бухгалтерии.
Но все таки хочется узнать, какие именно таблицы блокируются, может кроме этого есть другие объекты.
 
 
   Maxus43
 
1 - 27.12.12 - 12:11
платёжки ТМЦ не двигают никак, другие блокировки есть конечно, но они не пересекаются наверняка
   Maxus43
 
2 - 27.12.12 - 12:14
файл, скуль иль чего? нетх журнла можно настроить, на скуле скульными средствами можно посмотреть и т.д.
   мистер игрек
 
3 - 27.12.12 - 12:14
Вот полная ошибка:

{ОбщийМодуль.ПроцедурыИФункцииКонтроляДвиженийТоваров.Модуль(1192)}: Ошибка при вызове метода контекста (Прочитать)
        Движ.Прочитать();
по причине:
Конфликт блокировок при выполнении транзакции:
Microsoft OLE DB Provider for SQL Server: Lock request time out period exceeded.
HRESULT=80040E31, SQLSrvr: SQLSTATE=HYT00, state=38, Severity=10, native=1222, line=1
   Maxus43
 
4 - 27.12.12 - 12:15
*тех журнал
   мистер игрек
 
5 - 27.12.12 - 12:15
(2) Какого из них советуешь?
   cw014
 
6 - 27.12.12 - 12:16
Движ - это что?
   мистер игрек
 
7 - 27.12.12 - 12:17
(6) Движения документа
   Maxus43
 
8 - 27.12.12 - 12:18
(7) это в подписке?
   cw014
 
9 - 27.12.12 - 12:18
(7) К.О. в 1С... Какие движения?
   Maxus43
 
10 - 27.12.12 - 12:20
(5) по скулю например это, счетчик sp_lock
http://www.sql.ru/forum/actualthread.aspx?tid=617915
 
 Рекламное место пустует
   cw014
 
11 - 27.12.12 - 12:23
Я смотрю, мои вопросы игнорят. Ок, тогда ответ на вопрос "Как можно узнать, какая таблица блокируется?" будет "Телепатией"
   мистер игрек
 
12 - 27.12.12 - 12:23
(8) В общем модуле, а этот модуль из подписки
   мистер игрек
 
13 - 27.12.12 - 12:24
(9) Контроль остатков?
   Maxus43
 
14 - 27.12.12 - 12:25
(12) в типовых юзают наборы записей в подписках, а не обращаются к "Движения", привести к нормальному коду сначала, потом блокировки искать имхо
   мистер игрек
 
15 - 27.12.12 - 12:25
вот часть модуля:
    Для Каждого Движ Из Объект.Движения Цикл
        Движ.Прочитать();
        
        Если Движ.Количество() > 0 Тогда
            СтрокаДвижение = СтрЗаменить(Строка(Движ), "НаборЗаписей","");
            ПоложениеТочки = Найти(СтрокаДвижение,".");
            ТипРегистра = Лев(СтрокаДвижение, ПоложениеТочки-1);
            ИмяРегистра = Сред(СтрокаДвижение, ПоложениеТочки+1, 100);
            ПолноеИмяРегистра = ТипРегистра + "_" + ИмяРегистра;
            
            ПредставлениеРегистра = Движ.Метаданные().Синоним;
            СписокДвижений.Добавить(ПолноеИмяРегистра, ПредставлениеРегистра);    
        КонецЕсли; 
        
    КонецЦикла;
   cw014
 
16 - 27.12.12 - 12:25
Это такой регистр?
   cw014
 
17 - 27.12.12 - 12:26
(15)
1) Отладчиком, остановка по ошибке, ждем глюк
2) Заменяем: 
    Для Каждого Движ Из Объект.Движения Цикл
        Движ.Прочитать();
На
    Для Каждого Движ Из Объект.Движения Цикл
        Сообщить(ТипЗнч(Движ));
        Движ.Прочитать();
И ждем на какой строке свалится
   tdm
 
18 - 27.12.12 - 12:26
есть ЦУП(центр управления производительностью), специально для этих целей
   мистер игрек
 
19 - 27.12.12 - 12:27
(18) Сколько стоить? Где купить?
   cw014
 
20 - 27.12.12 - 12:27
(19) Продам недорого, 200$
   Maxus43
 
21 - 27.12.12 - 12:28
>>"специально для этих целей"
чо? он для организации нагрузочного тестирования и т.д. никак не для "Как можно узнать, какая таблица блокируется".
Это как забивать гвоздь 200 тонным прессом промышленным
   МихаилМ
 
22 - 27.12.12 - 12:29
(19)
~80 т.р.

у франчайзи
   cw014
 
23 - 27.12.12 - 12:29
(22) 80 тыр дорого, я всего за 200$ продаю :)
   мистер игрек
 
24 - 27.12.12 - 12:30
(22) Йопт!
   tdm
 
25 - 27.12.12 - 12:31
(21) какое нагрузочное тестирование ???
запускаете паралельно минут максмимум на 30 трасировку с анализом, дальше смотрите запросы которые блокируются, скульные таблицы)
   МихаилМ
 
26 - 27.12.12 - 12:32
(23)
200$
мне продадите ?
он NFR для партнеров 9 т.р.  стоит.
   tdm
 
27 - 27.12.12 - 12:32
(22) жесть...
   Maxus43
 
28 - 27.12.12 - 12:32
(25) я говорю что ЦУП - не для такой мелкой задачи, и покупать его для саьжа - бред)
   Maxus43
 
29 - 27.12.12 - 12:33
(27) ловите пирата) если он не знает сколько стоит и юбзает его для таких задачь - стопудово скомуниздил :)
   cw014
 
30 - 27.12.12 - 12:34
Вот подсказал же в (17) решение, почему проигнорировал ТС?
   tdm
 
31 - 27.12.12 - 12:34
(28) ну это интсрумент, кому-то он без надобности а кому-то и пригодится ;)
(29) я во франче работаю) не продажник - цены в последнюю очередь интересуют, не поверите
   Maxus43
 
32 - 27.12.12 - 12:37
(30) так мы узнаем что не может прочитать, но не узнаем какие таблицы заблокированы (и какие записи, раз таки SQL)
   мистер игрек
 
33 - 27.12.12 - 12:37
(30) Я уже это понял.
 
 
   cw014
 
34 - 27.12.12 - 12:38
(32) А, ну то есть если мы таблицу прочитать не можем, это не факт что она заблокирована? Если конечно только база не битая
   мистер игрек
 
35 - 27.12.12 - 12:38
(30) Я еще ловил такую же блокировку, но в этом сообщении не указывается место дислокации ошибки.
Тогда как быть?
   Maxus43
 
36 - 27.12.12 - 12:39
(34) не, так мы узнаем где споткнулись, но не узнаем споткнёмся ли на таблицах которые дальше есть. Узнаем только первую мешающую блокировку
   cw014
 
37 - 27.12.12 - 12:41
(34) Ну если так судить, можно опять же:
а) устранить эту блокировку и отслеживать дальше
б) поместить конструкцию Движ.Прочитать();
в
Попытка
Движ.Прочитать();
Исключение
ОбщегоНазначения.СообщитьОбОшибке("Неудачная попытка чтения таблицы " + ТипЗнч(Движ));
Продолжить;
КонецПопытки;
   мистер игрек
 
38 - 27.12.12 - 12:44
(37) Задача состоить в том, чтоб решать проблему с блокировкой. Походу избыточная блокировка на лицо.
А вообще-то можно ли блокировать регистры бухгалтерии (как движение документа) в разрезе субконто управляемым способом?
   cw014
 
39 - 27.12.12 - 12:45
(38) Не встречал
   Maxus43
 
40 - 27.12.12 - 12:48
(38) блокируется по записям таблицы, т.е. запись + соседние записи
   мистер игрек
 
41 - 27.12.12 - 12:54
(40) У тебя есть пример? Поделись плиз
   rs_trade
 
42 - 27.12.12 - 12:59
SELECT  resource_type,
   (CASE WHEN resource_type = 'OBJECT' THEN object_name(resource_associated_entity_id)
   WHEN resource_type IN ('DATABASE', 'FILE', 'METADATA') THEN 'N/A'      
   WHEN resource_type IN ('KEY', 'PAGE', 'RID') THEN (SELECT object_name(object_id) FROM sys.partitions WHERE hobt_id=resource_associated_entity_id) ELSE 'Undefined' END) AS requested_object_name,
   request_mode AS lock_type,
   request_status,
   request_owner_id AS transaction_id
FROM sys.dm_tran_locks
WHERE resource_database_id = DB_ID() AND resource_type <> 'DATABASE'
AND request_mode NOT IN('IX', 'SIX', 'Sch-S')
ORDER BY requested_object_name, resource_type;

просмотр блокировок. если надо такое.
   мистер игрек
 
43 - 27.12.12 - 13:00
(42) Это проверяется в QA?
   rs_trade
 
44 - 27.12.12 - 13:03
(43) Этот скрипт запускается в MS SMS для нужной базы. Есть еще обработка Гилева. Не знаю правда как она для 8.2 работает.
https://dl.dropbox.com/u/20471596/Lock1C.epf
   milan
 
45 - 27.12.12 - 13:09
к гилеву на бесплатный сервис мониторинга уже предлагали обратиться ?
   мистер игрек
 
46 - 27.12.12 - 13:40
Уточнил. Как предполагал, блокируются регистры бухгалтерии.
А так есть возможность блокировать регистр бухгалтерии по счету или по субконто?
   ДенисЧ
 
47 - 27.12.12 - 13:42
(46) да
   Maxus43
 
48 - 27.12.12 - 13:44
есть опасность эскалации блокировок, ибо скуль сам решает когда пора, зависит от заблокированного диапазона и настроек
   мистер игрек
 
49 - 27.12.12 - 13:45
(47) Приме скинешь?
 
 Рекламное место пустует
   krbIso
 
50 - 27.12.12 - 13:51
режим разделения итогов включи у регистра бухгалтерии если контроля остатков нет
   мистер игрек
 
51 - 27.12.12 - 13:56
(50) Включен
   krbIso
 
52 - 27.12.12 - 14:08
(51) контроль остатков по регистру бух. есть? если есть то перенеси его к концу транзакции. Или откажись от оперативной записи движений в рег. бух.
   мистер игрек
 
53 - 27.12.12 - 14:13
(52) Ок.



Список тем форума
Рекламное место пустует Рекламное место пустует
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует