|
Конфликт блокировок + удваивание rphost-тов | ☑ | ||
---|---|---|---|---|
0
vmprog
30.01.15
✎
11:59
|
Всем привет.
Случилась проблема и повторяется в спонтанные моменты. Имеем Сервер 1С 8.2.19.106 SQL на отдельной машине 2012 Куча баз как файловых так и SQL. Основное количество пользователей используют 1С Документооборот. У пользователей начинает массово возникать окно с Конфликтом блокировок. Нажатие кнопки Подробно ведет в разные участки кода на метод Записать(). Каждый раз это запись разных таблиц. Характерный момент. В нормальном режиме на сервере 1С живут 4 процесса в rphost. Сразу после первого обращения пользователя с ошибкой блокировки количество rphost-ов уже 8. И количество сеансов раза в 4 больше количества соединений. Параллельно начинают звонить пользователи других баз с конфликтом блокировок. Ситуацию временно лечит перезапуск службы 1С сервера. Тех журнал на сервере ошибок не показывает. Запрос на SQL демонстрирующий заблокированные таблицы с каждым формированием запроса показывает разные заблокированные таблицы. В каком направлении рыть? Второй день такая проблема. Помогите. |
|||
1
Escander
30.01.15
✎
12:01
|
Попробую угадать: конфа пилена?
|
|||
2
vmprog
30.01.15
✎
12:03
|
да. Очень сильно. Работает так уже 4 года.
|
|||
3
Андрюха
30.01.15
✎
12:20
|
(0) win64 ?
|
|||
4
vmprog
30.01.15
✎
12:26
|
Win2008 63, но 1С Сервер 32 разрядный
|
|||
5
vmprog
30.01.15
✎
12:26
|
64
|
|||
6
vmprog
30.01.15
✎
13:08
|
Люди не дайте погибнуть
|
|||
7
kerm
30.01.15
✎
16:05
|
У тебя когда окно с ошибкой выходить там написано про взаимоблокировки или просто из-за блокировки?
|
|||
8
kerm
30.01.15
✎
16:25
|
Если взаимоблокировки то или разный порядок захвата ресурса или повышение изоляции ресурса. Если просто блокировки смотришь код запросов. Из проведения документов я убрал все кроме самого проведения. Проверки перекинул в процедуру перед записью при проведении. Дополнительные обработки перекинул на регламентные задания. Даже без перехода на управляемый режим все работает. Теперь базу перекинули на слабый сервер и заявили мне что бизнес потребности в быстродействии нет.
|
|||
9
Fragster
гуру
30.01.15
✎
16:35
|
(8) > Проверки перекинул в процедуру перед записью при проведении
в модуль объекта? тогда смысл, если оно всё равно в той же транзакции? В модуль формы? Тогда смысл, если документ можно провести из списка без этих проверок? |
|||
10
H A D G E H O G s
30.01.15
✎
16:42
|
(9) Все он правильно сделал
|
|||
11
H A D G E H O G s
30.01.15
✎
16:43
|
(9) Проверки должны идти ПередЗаписью() модуля объекта документа, с проверкой режима записи (режимЗаписи=Проведение), до транзакции.
|
|||
12
H A D G E H O G s
30.01.15
✎
16:46
|
(11) Естественно, проверяться должен сам документ.
|
|||
13
kerm
30.01.15
✎
16:54
|
удваивание rphost-тов - возможна утечка памяти.
|
|||
14
kerm
30.01.15
✎
16:59
|
Например в бесконечном цикле создаются какие то объекты.
|
|||
15
Dmitrii
гуру
30.01.15
✎
17:06
|
(11) >> ПередЗаписью() модуля объекта документа... до транзакции.
Это как? ДокументОбъект ПередЗаписью (BeforeWrite) Описание: Возникает перед выполнением записи объекта. Процедура-обработчик вызывается ПОСЛЕ НАЧАЛА ТРАНЗАКЦИИ ЗАПИСИ, но до начала записи документа |
|||
16
H A D G E H O G s
30.01.15
✎
17:22
|
(15) Да, я оошибся, признаю.
|
|||
17
kerm
30.01.15
✎
17:35
|
(15) реально помогло. Сделал еще весной 2010 года. База просто висела. В своих знаниях по управляемой блокировке не был уверен. По этому сначала перевел на управляемый режим а потом вернул обратно. От 800 до 1500 заказов в день и соответственно столько-же реализаций.
Как я понимаю если перед выполнением записи документа при проведении значит документ не записался и движения еще не пытаются записаться в регистры. Документ ведь может быть не записан. Значит пока нет исключительной блокировки - только пока чтение. При Отказе перед выполнением записи документа нечего откатывать обратно не надо. Думаю и формировать движения в модуле проведения документ не будет. Надо проверить. |
|||
18
Mikhail Volkov
30.01.15
✎
18:06
|
Вчера был в одной конторе, до сих пор сидят на 8.1, при чем не на последнем ее релизе! Говорят, что из-за конфликтов блокировок!?
|
|||
19
kerm
30.01.15
✎
18:53
|
(15) Проверил: вызывается через
ЗаписатьВФорме(РежимЗаписиДокумента.Проведение) При отказе - обработка проведения не вызывается. Перечитав строку: "Процедура-обработчик вызывается ПОСЛЕ НАЧАЛА ТРАНЗАКЦИИ ЗАПИСИ, но до начала записи документа." - понял что здесь описывается транзакция записи самого документа, а не транзакция проведения его движений. |
|||
20
celentano
30.01.15
✎
19:37
|
(0) Правильный ответ: Оплатить услуги эксперта
|
|||
21
Mikhail Volkov
31.01.15
✎
03:55
|
(17) > От 800 до 1500 заказов в день и соответственно столько-же реализаций
Это все по одной организации? Документы разных организаций одновременно дает проводить? |
|||
22
Escander
31.01.15
✎
07:07
|
(2) конфа на управляемых блокировках?
|
|||
23
Escander
31.01.15
✎
07:08
|
(20) это не спортивно
|
|||
24
Mikhail Volkov
31.01.15
✎
08:44
|
+(18) Ну и как с ними бороться? Или оставаться на 8.1...
|
|||
25
celentano
31.01.15
✎
10:40
|
(23) Зато эффективно и стоит почти так же как и рисование печатных форм.
|
|||
26
Mikhail Volkov
01.02.15
✎
05:19
|
Встречал одну интересную конфигурацию УПС - управленческую платежную систему на базе УПП.
Во-первых отключен партионный учет (до появления РАУЗ) - товар всего один (раньше было 3 с разными ставками НДС). А во-вторых с организациями поступили так же, как с контрагентами. Сами контрагенты же не являются объектами взаиморасчета, объектами взаиморасчета являются их договора, а контрагенты - это лишь их группировки. Также сделали с организациями - они лишь группировки подразделений. В обычной УПП когда проводишь взаиморасчетный документ, блокируется все по организации документа. А в той УПС вроде остро вопрос блокировок не стоял. |
|||
27
Mikhail Volkov
02.02.15
✎
05:16
|
Что заглохла тема?
|
|||
28
vmprog
02.02.15
✎
18:15
|
Решено.
Может кому пригодится. Все началось с момента как я на этом сервере обновил сервер 1С до релиза 8.3.5.1383. Базы запустились, но перестала запускаться одна из внешних компонент (dll). Пришлось срочно возвращаться на сервер 8.2. Я останавливаю службу 8.3 и деинсталлирую ее. Запускаю службу сервера 8.2. Пользователи начинают работать. Через некоторое время начинается этот бред (см выше) причем в не понятные промежутки времени. Решение: Обратил внимание, что если открыть Администрирование-Службы, то там есть две записи Агент сервера предприятия 8.2 (Работает) и далее идет Агент сервера предприятия 8.3 (остановлена) хотя в (программах и компонентах) упоминания о 8.3 нет. Сделали следующее. Вычистили из реестра упоминания о 8.3. Перезагрузили сервер. Удалили и установили снова сервер 8.2 и проблема ушла. |
|||
29
Dmitrii
гуру
02.02.15
✎
18:23
|
(19) >> ... транзакция записи самого документа, а не транзакция проведения его движений.
Запись и проведение документа выполняются в одной транзакции. Там нет двух транзакций. Извините, но какая-то каша у вас в голове. ПередЗаписью в обычной форме документа (событие формы) выполнятся действительно до начала транзакции. Но делать что-либо в этом обработчике касающееся проведения нельзя, т.к. документ может проводиться без открытия формы. |
|||
30
kerm
02.02.15
✎
18:53
|
(29)
Если вы пишите что "ПередЗаписью в обычной форме документа (событие формы) выполнятся действительно до начала транзакции". на свое утверждение (15) значит я прав. На счет одной или двух транзакций можно утверждать что угодно. Предложите способ проверить. У меня такого способа пока нет. Есть просто рассуждение что движение без регистратора невозможно. А документ без движения есть. В (8) я писал что: "Проверки перекинул в процедуру перед записью при проведении". Это ведь не касается самого проведения документа. Это проверки типа дробного количества не весового товара, задолженности контрагента, разных лимитов и т.д. Того что касается интерактивной работы с документом. |
|||
31
Dmitrii
гуру
02.02.15
✎
19:01
|
(30) У документа vjuen существовать два события ПередЗаписью. Одно - в форме документа (выполняется до начала транзакции). Второе - событие самого документа (выполняется после начала транзакции, но до записи в базу)
Если документ проводится вне интерактивной работы (без открытия формы, то первое событие (которое событие формы документа) не обрабатывается, т.к. нет самой формы. >> На счет одной или двух транзакций можно утверждать что угодно Можно тупо открыть документацию по платформе. Вряд ли 1С-овцы будут врать. ;) >> Проверки ... Того что касается интерактивной работы с документом. Это вполне допустимо. Только тут надо внимательно думать и смотреть - что можно переносить в обработчики формы, а что нельзя. Например, вы вынесли в форму проверку на нехватку товара на складе (чтобы не было ухода в минуса). Эта проверка не будет выполнена при групповом перепроведении документов или восстановлении последовательности. Насколько это нормально - зависит от конкретного бизнеспроцесса в организации (для кого-то отключение контроля отрицательных остатков при проведении - нормальная ситуация). |
|||
32
Dmitrii
гуру
02.02.15
✎
19:07
|
(30) >> движение без регистратора невозможно
Здрасти приехали.... Вы никогда не делали записи наборов записей регистров вне обработки проведения? |
|||
33
kerm
02.02.15
✎
19:16
|
(32) ну еще здесь на пустом месте начинаете.
Я же имел в виду что если набор движений должен иметь регистратор, то должна быть хотя бы этого регистратора ссылка. И ничего не писал на счет "наборов записей регистров вне обработки проведения". |
|||
34
Dmitrii
гуру
02.02.15
✎
19:19
|
(33) Я к тому, что такая логика тут неуместна. Обязательность поля Регистратор никак не связана с наличием отдельной транзакции. Транзакция одна. И в случае Отказ=Истина откатывается целиком (включая запись документа в базу).
|
|||
35
kerm
02.02.15
✎
19:29
|
(34) Здесь вы наверно правы, но проверки вы все же не предложили. И если не вы сами писали эту транзакцию, то возможны варианты.
|
|||
36
vi0
02.02.15
✎
19:49
|
(35) в профайлере отследить события begin tran
|
|||
37
Mikhail Volkov
03.02.15
✎
13:04
|
(28) И что, Агент сервера предприятия 8.3 мешал работе агента 8.2? Я знаю конторы, где по 3 службы одновременно работают, и вроде не конфликтуют!?
|
|||
38
vmprog
03.02.15
✎
19:39
|
(37) Получается, что да. Причем агент 8.3 был не запущен. Факт остается фактом. До сего дня полет нормальный.
|
|||
39
Mikhail Volkov
04.02.15
✎
05:09
|
(38) Вроде агенты ставятся "рядом", но если агент 8.3 что-то "обновил" у агента 8.2, значит криво "обновил"...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |