|   |   | 
| 
 | очень частые блокировки транзакций | ☑ | ||
|---|---|---|---|---|
| 0
    
        mnail1979 14.04.12✎ 08:30 | 
        Здравствуйте, уважаемые профессионалы.
  1С 8.1 УПП. Одновременных пользователей 15. Очень часто выходят взаимоблокировки транзакций. ЦУП у меня нет. Как понять и исправить эту проблему? | |||
| 1
    
        DrShad 14.04.12✎ 08:33 | 
        какая таблица блокируется?     | |||
| 2
    
        Klesk 14.04.12✎ 08:36 | 
        файловая или какая?     | |||
| 3
    
        mnail1979 14.04.12✎ 08:39 | 
        (2) клиент сервер. SQL server 2008 R2     | |||
| 4
    
        mnail1979 14.04.12✎ 08:41 | 
        (1) а как понять какая блокируется     | |||
| 5
    
        mnail1979 14.04.12✎ 08:44 | 
        Ошибка при вызове метода контекста (Выполнить). Ошибка выполнения запроса "конфликт блокировок при выполнении транзакции:
  Microsoft OLE DB Provider for SQL Server. Транзакция (идентификатор процесса 62) вызвала взаимоблокировку ресурсов блокировка с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно. Это при проведении документа реализации. | |||
| 6
    
        МихаилМ 14.04.12✎ 08:50 | 
        настройте тех.журнал  на сбор информации по блокировкам     | |||
| 7
    
        Один С 14.04.12✎ 09:00 | 
        15 пользователей и частые блокировки... много думал...     | |||
| 8
    
        mnail1979 14.04.12✎ 09:04 | 
        (6) а как это. Я новичок в этом деле. Подскажете?     | |||
| 9
    
        Живой Ископаемый 14.04.12✎ 09:05 | 
        (6) в 8.1 уже был ТЖ?     | |||
| 10
    
        МихаилМ 14.04.12✎ 09:09 | 
        (9)
  да. был. | |||
| 11
    
        mnail1979 14.04.12✎ 09:18 | 
        можете по шагам расписать, что мне нужно делать. Я читал разные статьи, где советовали переходить с автоматического режима на управляемый и автоматический и т.д. Но по шагам было бы лучше.     | |||
| 12
    
        МихаилМ 14.04.12✎ 09:25 | 
        (11)
  пришло время почитать руководство администратора 1с. а еще лучше руководство разработчика и администратора ms sql. сдаётся мне: Вы не владеете базовой терминологией, так что пошаговая инструкция Вам не положена. | |||
| 13
    
        mnail1979 14.04.12✎ 09:35 | 
        :(     | |||
| 14
    
        mnail1979 14.04.12✎ 09:36 | 
        я работал на оракле. С MS SQL я новичок     | |||
| 15
    
        mnail1979 14.04.12✎ 09:39 | 
        ТЖ мне поможет, или нужен еще обязательно ЦУП?     | |||
| 16
    
        МихаилМ 14.04.12✎ 10:15 | 
        тж поможет . цуп использует тж.
  после мониторинга не забудте отключить логирование тж. | |||
| 17
    
        mnail1979 14.04.12✎ 11:53 | 
        прочитал статью http://1cexpo.ru/metodiki/31-analiz-i-ustranenie-vzaimoblokirovok.html#case1
  На одном из запросов решил попробовать параметр ДЛЯ ИЗМЕНЕНИЯ. Скажите, плиз, есть ли у него недостатки. Или его можно лепить где попало. | |||
| 18
    
        Aleksey 14.04.12✎ 12:04 | 
        (7) А что думать. У меня блокировки на равном месте иной раз выскакивают. Т.е. сижу в базе один (типовая БП), никого нет. Запустил проведения - и бац, не могу провести ... блокировка.
  Так что подпишусь на тему, сам хотел создать, да всё руки не доходят. | |||
| 19
    
        Kraft 14.04.12✎ 12:20 | 
        не в тему, но отпишу тут. В последнее время (после перехода на 8.2.15) стали происходить интересные глюки с блокировками. При попытке что-то сделать, например провести документ, ругается, что объект уже открыт и изменяется другим пользователем с таким-то номером сеанса. Так вот дело в том, что такого сеанса уже давно нет, и пользователь (на которого ссылается система) новых сеансов не открывал. Рестарт сервера 1с не помогает (!!!). Ситуацию спасает лишь рестарт ms sql. Такая ситуация проявлялась уже 2 раза за 2 месяца.     | |||
| 20
    
        Aleksey 14.04.12✎ 12:24 | 
        (19) Во-во, до 8.2.15 тоже небыло блокировок в чистом поле. Т.е. запускаешь на ночь перепроводку и к утру готовый результат. Сейчас - нет гарантии     | |||
| 21
    
        Wern 14.04.12✎ 12:24 | 
        (17) Прочитал что при зубной боли помогает шалфей и решил все болезни лечить им? Проблему надо решать, а не лепить что попало и где попало.     | |||
| 22
    
        Wern 14.04.12✎ 12:26 | 
        (20) фоновые задания смотрите, только они могут создать блокировку на одном пользователе.     | |||
| 23
    
        демотиватор 14.04.12✎ 12:28 | 
        (0)что делают эти пользователи?     | |||
| 24
    
        Aleksey 14.04.12✎ 12:34 | 
        (22) Обычно фоновые в ЖР пишутся. А так из фоновых только Регламентное задание. Обновление индекса полнотекстового поиска     | |||
| 25
    
        Один С 14.04.12✎ 16:22 | 
        ну дык запретите регламенты на сервере, да посмотрите что получится..     | |||
| 26
    
        aspirator23 14.04.12✎ 17:34 | 
        Расскажи о своем sql сервере. Как он устроен?     | |||
| 27
    
        mnail1979 14.04.12✎ 18:42 | 
        (26) Железо?     | |||
| 28
    
        Гот 14.04.12✎ 19:07 | 
        (27) Кальций.
  В модуле документа реализации Через строку вставь Сообщить("Дошел до строки " + НомерСтроки); При проведении все, что после нужной строки - удали. Обнови конфигурацию - не будет блокировок. Гарантирую. | |||
| 29
    
        Гот 14.04.12✎ 19:08 | 
        Номер строки - в смысле номер строки текста модуля.     | |||
| 30
    
        mnail1979 14.04.12✎ 21:28 | 
        (29) как можно просто удалить. Раз написано - значит нужно...     | |||
| 31
    
        mnail1979 16.04.12✎ 16:11 | 
        вот скриншот: http://s019.radikal.ru/i644/1204/cd/dc49acf3e2f4.jpg
  Подскажите, как решить взаимоблокировку | |||
| 32
    
        Aleksey 16.04.12✎ 16:19 | 
        УРИБ нет? А то у меня оказалось куча почек (остатки былой роскоши) с еще большей кучей зарегестророванных изменений в не (по 3-4 ляма в каждой почки). И из-за этого выскакивали блокировки     | |||
| 33
    
        mnail1979 16.04.12✎ 16:30 | 
        (32) не понял     | |||
| 34
    
        Зеленый Кот 16.04.12✎ 16:39 | 
        >> куча почек?
  надолго задумался... | |||
| 35
    
        Stepa86 16.04.12✎ 16:49 | 
        (31) а давно в УПП есть документ ЗакрытиеРейса?     | |||
| 36
    
        mnail1979 16.04.12✎ 16:50 | 
        (35) это УПП с большими дописками     | |||
| 37
    
        Stepa86 16.04.12✎ 16:51 | 
        (36) вот эти дописки и делают дедлоки, обращайся к авторам     | |||
| 38
    
        mnail1979 16.04.12✎ 16:53 | 
        К сожалению к авторам обратиться не могу. Сам потихоньку им становлюсь. Поэтому нужно разобраться самому     | |||
| 39
    
        Aleksey 16.04.12✎ 16:55 | 
        (33) Что такое УРИБ и План обменов не знаешь? Или что не понятно?     | |||
| 40
    
        Aleksey 16.04.12✎ 16:55 | 
        (34) А как их назвать?     | |||
| 41
    
        mnail1979 16.04.12✎ 16:56 | 
        В документе есть запрос, который читает данные с регистранакопления.
  Был такой запрос: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, | ТоварыНаСкладахОстатки.СерияНоменклатуры, | СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(&МоментВремени, Склад = &СкладМашина) КАК ТоварыНаСкладахОстатки | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, | ТоварыНаСкладахОстатки.СерияНоменклатуры"; Запрос.УстановитьПараметр("СкладМашина",СкладОтправитель); Запрос.УстановитьПараметр("МоментВремени",МоментВремени()); Возврат Запрос.Выполнить().Выбрать(); | |||
| 42
    
        Aleksey 16.04.12✎ 16:57 | 
        (37) Конечно тебе же с места виднее, вот так сразу глянул на кофейную гущу и сразу видно - что дописывал олень, он виноват. И главное так авторитетно и безапелляционно заявлешь об этом, как будто код видел     | |||
| 43
    
        mnail1979 16.04.12✎ 16:57 | 
        возможно (точно не могу утверждать) после того, как я его изменил, это все и началось. 
  Вот измененный вариант: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ТоварыНаСкладах.Номенклатура, | ТоварыНаСкладах.ХарактеристикаНоменклатуры, | ТоварыНаСкладах.СерияНоменклатуры, | СУММА( | ВЫБОР | КОГДА ТоварыНаСкладах.ВидДвижения=ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА ТоварыНаСкладах.Количество | ИНАЧЕ (-1)*ТоварыНаСкладах.Количество | КОНЕЦ | ) КАК КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах |ГДЕ | ТоварыНаСкладах.Регистратор.Рейс = &Рейс | И ТоварыНаСкладах.Склад = &СкладМашина |СГРУППИРОВАТЬ ПО | ТоварыНаСкладах.Номенклатура, | ТоварыНаСкладах.ХарактеристикаНоменклатуры, | ТоварыНаСкладах.СерияНоменклатуры |ИМЕЮЩИЕ |СУММА( | ВЫБОР | КОГДА ТоварыНаСкладах.ВидДвижения=ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА ТоварыНаСкладах.Количество | ИНАЧЕ (-1)*ТоварыНаСкладах.Количество | КОНЕЦ | )<>0 | "; Запрос.УстановитьПараметр("СкладМашина",СкладОтправитель); Запрос.УстановитьПараметр("Рейс",Рейс); Возврат Запрос.Выполнить().Выбрать(); | |||
| 44
    
        Stepa86 16.04.12✎ 17:26 | 
        (42) а разве из (31) не очевидно? и чот я сомневаюсь, что типовая чистая УПП в дедлоки падает при 15 пользователях     | |||
| 45
    
        Aleksey 16.04.12✎ 17:32 | 
        (44) Я могу тебе и в типовой БП с 3-мя пользователями дедлоки сделать. И что?     | |||
| 46
    
        Stepa86 16.04.12✎ 17:33 | 
        (43) попробуй поле Рейс проиндексировать у регистратора... хотя так то херого, что обращаешся к реальной таблице
  (45) и скриншот при этом от ЦУПа покажешь, где дедлок на доработку завязан? | |||
| 47
    
        mnail1979 16.04.12✎ 21:03 | 
        (46) может я запрос не правильно написал. Как видите, раньше все было через товарынаскладах.остатки, а я переделал на просто новарынаскладах, чтобы выйти на рейс через регистратор. Может надо как то по другому. Я новичок в 1С. Можно ли как то используя ВТ остатки выйти в данном случае на рейс, или добавить в этот регистр еще один реквизит "рейс"     | |||
| 48
    
        mnail1979 16.04.12✎ 21:15 | 
        прикол в следующем. Кто то другой проводит документ реализация. В это момент запускается запрос другим пользователем, который я указал выше. И получается взаимоблокировка, так как почему то мой запрос через регистр выходит тоже на документ реализации. Вот и думаю, если все же сделать запрос через ВТ остатки, путь запроса будет таким же или нет.     | |||
| 49
    
        МихаилМ 16.04.12✎ 21:15 | 
        в 43 такой запрос в модуле проведения
  в 8.1 заблокирует всю таблицу движений. тк уровень изоляции - serializeble | |||
| 50
    
        mnail1979 16.04.12✎ 22:16 | 
        (49)вот вот. Поэтому думаю вернуться на остатки, но при этом добавив в регистр новый реквизит "рейс"     | |||
| 51
    
        mnail1979 16.04.12✎ 22:31 | 
        (50) точнее новое измерение     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |