Исправление ошибки 1С:Предприятие 7.7/8.0 - 100% загрузка процессора при ожидании блокировки
Цель использования: разгрузить процессор, когда два или более пользователей пытаются провести документ. 1С пытается заблокировать таблицы, но делает это без пауз, и загружает процессор на 100%. При этом пользователи практически "встают", и нормальная работа прекращается. Компонента (или патч) позволяет решить эту проблему и нормализовать работу пользователей. Особенно актуально при работе в режиме сервера терминалов.
13.12.2007 14:13 [18.08.2010 14:42] 180 [+] [−] Перейти к публикации
Спасибо. А то я удивился - пока только 5 юзеров перевел на скуль, а они орут, что все-равно транзакции. Пока буду разбиратся с оптимизацией блокировок на скуле, поставлю и там плагин.
(4) Это точно! Я под любой разработкой Ромикса готов поставить плюсик не глядя. Сколько хороших идей от него почерпнул... Одним словом - добротно сработано.
(4) Не надо путать нас в одну кучу - Ромикс - разработчик, а я - девелопер (если упрощенно - Ромикс делает кирпичи, а я из них пытаюсь стенку сложить
Поправил для 8.1 - теперь должно работать на более новых релизах (раньше не работало).
Также убрал внешние компоненты (плагином к программным файлам по-моему лучше), чтобы не создавать разных вариантов и лишних вопросов.
Дописал описание по поводу сигнальных файлов, и в каких случаях чего нужно ставить.
втыкнул загрузку ВК при старте системы - все равно блокировки изредка наблюдаются...
Ответили: (17)
Хорошая штука, спасает. Вот только с 25 релизом 7-ки и SQL 2005 сеанс 1С-а падал непредсказуемо в момент ожидания блокировки. С 27 пока работает нормально.
Неудобство с окошком о паузе, оно активизуруется при ожидании и переключает из других приложений обратно, а сообщение в трее, в случае использования опубликованного приложения Citrix'a, правильно не отображается. Хорошо, что можно отключить, и то, и другое.
Да блин ну что за вы люди не помочь не фига
проблема существует
ну вот сматрите
1С:Предприятие 8.0 (8.0.18.2)
Конфа и как видишь релиз Семейство "АСТОР: Ваш магазин 6.0" (6.0.15.8)
сама база гдет 7 гигов лог транзакции около 40 ка. Гигов сервак оптерон 2 процессорный 4 гига озу пользователеи одновременно работающих и проводящих наклдые всякие 16 РОБОТОВ . Загрузка проца 100 % а оперативы жарет 4,75 . Работа всех идет в терминальном режиме. Хотел твою разработку применить в этом во всеи и помогло бы конкретно!!!!Но б..ин муха она тока на фаиловом работает а на SQL нет памагииитя плз
Ответили: (27)
(25) (Mihenius)
>> Кстати, как работает с Kernel33.dll от ? Глючит?
Да. Поэтому и появился Kernel37. Но алгоритм у romix лучше.
>> Может в вашей компоненте заложить снятие ограничения в 1ГБ для ДБФ баз?
Данный алгоритм должен включатся до открытия файлов DBF. А алгоритм разработки может включаться и позже. Проще в разработке romix учесть при перехвате еще и имя Kernel33.
Ответили: (29)
На Винде 2003 сервер возникла такая же проблема как у Vesna (коммент №20), база ДБФ 7.7, проц разгрузился, но иногда после сообщения в трее "Ожидание блокировки" вылетает сообщение об ошибке транзакции и 1С закрывается. Очень обижаются пользователи когда это происходит при вводе 120 строки документа, который, понятное дело не сохраняется=). Что может быть не правильно, устанавливал обработку строго в соответствии с описанием.
Проблема в 7.70.027 вполне актуальна.
Самое интересное, что когда-то была другая компонента (того же автора?), "vk_sleep_1C". Грузилась она другим способом :
Если ( ЗагрузитьВнешнююКомпоненту("vk_sleep_1C.dll") = 1 ) Тогда
vk_sleep=СоздатьОбъект("Addin.vk_sleep_1C");
vk_sleep.УстановитьПаузуПриБлокировке(1024, "7.7");
vk_sleep.ПоказыватьВсплывающиеПодсказки=0; //если=1, то показывает balloon tooltips в трее при блокировке.
КонецЕсли;
То есть не патчили DLLки 1С на диске, а ремонтировали проблему как-то иначе. (Кажется читал, что тоже патчили, но уже в памяти.)
Сейчас ссылок на неё в сети почти нет (где скачать - вообще не нашел). Хотя данный вариант мне, от чего-то, более приятен, пусть уж на диске эти правообладательские ДЛЛ останутся нетронутыми, а в памяти - не проверят
Вполне исправно пашет... Вроде
Автор, чем vk_sleep_1C.dll плоха?
Добрый день.
А не повлияет ли снятие блокировок на неверные расчеты?
(учет по среднему)
скажем
(1) бухгалтер вводит документ поступление МПЗ
(2) начинает делать какой либо документ по списанию этого МПЗ
(2) закончил ввод и начинает проводить
на половине пути проведения документа вторым бухом, запускает проведение первый бух
т.е. возможна ситуация
(2) получаю остатки по МестамХранения
(1) изменяет регистр Партии и МХ
(2) получает остатки по Партиям
(2) средняя цена изменилась в сторону увеличения
в случае с блокировкой транзакций, остатки и средние суммы посчитаются верно,
а если блокировки отключены? может такое произойти и на сколько вероятно?
Ответили: (43)
Действительно (36) , найти не реально что бы просто скачать. По пути начитался на форумах и т.д. что люди пользуют её. Т.е. работает. Автор не ответил на Ваш пост - не понятно почему.
На сайте автора хранится куча старых его разработок, и их развитие.(Что в принципе верно, видно ход мысли, да и вообще..)
Но на эту vk_sleep_1C.dll никаких намёков.
Ответили: (44)
Написал письмо автору 04.12.2010, ответа пока нет!
Здравствуйте, я поставил компоненту Plugin_Terminal_Sleep в фирму с базой 7.7 Dbf Торговля 9.29.
Количество пользователей более 30.
Стала появляться ошибка в определенный момент, при вводе на основании ЗаявкаПокупателя документа Реализация и попытке записать документ пишет
Объект заблокирован, т.е. только что созданный документ, еще даже не до конца созданный оказывается заблокированным.
Это исчезает только после лечения базы через тестирование и исправление, где вылезает список ошибок по потерянным шапкам документов.
После лечения некоторое время работает, потом опять те же ошибки. Я это связываю с не корректной отменой транзакции.
Размер самого большого Dbf файла не превышает 500 МБ. Общий объем базы с dbf и cdx более 4 ГБ.
Компоненту пришлось отключить!
Ответили: (46)
(45) (NagNag)
"Компоненту пришлось отключить!"©
И помогло? ;-)
"Я это связываю с не корректной отменой транзакции."(с)
Компонента от Романа (romix) не имеет отношение к отмене транзакции.
Вы смогли устранить проблему "CodeBase Error #: -310" ?
Если не устранить эту проблему, то ошибки могут быть любые...
Помогло! Прежде чем отключить компоненту полечил базу! Ошибка повторилась в первый же день!
Опять полечил и компоненту больше не включал! Такой ошибки больше не повторялось!
CodeBase Error #: -310 была ошибка была в другой базе, в бухгалтерии 7.7, там пришлось обрезать базу, так как Dbf - файл превышал 2 ГБ.
Ответили: (48)
Поставили 2008 сервер + секретный релиз
Все запустилось и счастье где-то близко, но вернулись к проблеме "Ожидания блокировки"
Т.к. и "секретный релиз" и VK_TerminalSleep используют одну и ту же BkEnd, то либо вылетаем "Не верная версия ODBC", либо блокировки
Есть у кого-нибудь сборка из этих двух BkEnd в одной? или еще варианты?
Пожелание: Тумба-Тумба-Тумба-Румба <tttr@mail.ru> из текстового файла... Плз...
АдресПолучателя = СтрЗаменить(АдресПолучателя,"<","");
АдресПолучателя = СтрЗаменить(АдресПолучателя,">","");
АдресПолучателя = СтрЗаменить(АдресПолучателя,"(","");
АдресПолучателя = СтрЗаменить(АдресПолучателя,")","");
Пока Найти(АдресПолучателя, " ") Цикл //Цикла
ПустаяМиска = Найти(АдресПолучателя, " ");
ПозГавГавки = Найти(АдресПолучателя,"@");
Гафф = ПустаяМиска - ПозГавГавки;
АдресПолучателя = Сред (АдресПолучателя, ?(Гафф>0,1,ПустаяМиска + 1),?(Гафф<0,СтрДлина(АдресПолучателя),ПустаяМиска - 1));
КонецЦикла;
для работы в 8.2 пришлось исправить:
Если НЕ Письмо.ОбратныйАдрес.Количество() Тогда
ОбратныйАдрес = Письмо.ОбратныйАдрес.Добавить();
Попытка
ЗаполнитьЗначенияСвойств(ОбратныйАдрес,Письмо.Отправитель);
Исключение
КонецПопытки;
Если ОбратныйАдрес.Кодировка = "" Тогда
ОбратныйАдрес.Кодировка = "KOI8-R";
КонецЕсли;
КонецЕсли;
перед
Почта=Новый ИнтернетПочта;
Почта.Подключиться(ИПП);
Почта.Послать(Письмо);
...
У нас на предприятии этот вариант не заработал, т.к. библиотеки, что автор патчит, уже "исправлены". Скачал на сайте автора по ссылке . Функционал тот же, плюс то, что ничего патчить не надо (проблема решена путем подмены процедуры библиотеки ole32.dll). Пробовал для Windows 7... выдавала ошибки при загрузке...пришлось немного поковырять исходники. На тестовой базе все работает отлично. Завтра поставлю на рабочую... если что не так, буду жаловаться ))). Плюсую.
Ответ Альберту (в личку к сожалению не постится):
Там может быть уже это реализовано ЕМНИП, посмотрите в документацию, вроде бы Hogik встраивал то что нужно в свою DLL.
А проверить можно попыткой параллельного проведения двух доков в пустой базе, если в модуле проведения одного из них вставить Предупреждение для остановки транзакции, и следом начать проводить другой док той же базы из соседнего окна 1С. В непатченной 1С загрузка процессора возрастает до 100%, а в патченной остается близкой к нулю.
180 [+] [−] Перейти к публикации
>Нужно ли данное исправление для 8.0 SQL (клиент-сервер)?
>>Нет, там эта проблема не существует.
Это можно понимать что проблема для SQL вообще не существует? Или для 7.7 плуг все-таки нужен?
Поскольку использую еще для ДБФ - плюс однозначно.
Ответили: (37)