Загрузка процессора 100% в 7.7 под Windows Server 2008 при блокировке журнала транзакций.

04.08.20

Разработка - Разработка внешних компонент

1C 7.7 "Секретный релиз" + Windows Server 2008r2 и 1С запускается и работает, но ввиду того, что обновили BkEnd, потеряли полезнейший функционал, такой как предотвращение "загрузки процессора на 100%" при ожидании блокировки журнала.

Скачать исходный код

Наименование Файл Версия Размер
vk_hook1C.dll (вер. 2.0.0.31)
.dll 140,50Kb
361
.dll 140,50Kb 361 Скачать
пример базы
.zip 32,27Kb
74
.zip 32,27Kb 74 Скачать
Исходники
.zip 82,67Kb
3
.zip 82,67Kb 3 Скачать

Помыкавшись по сети и ввиду очень ограниченного времени на ожидание ответа от Romix'a (честь ему и хвала), воспользовались его исходниками для vk_hook1C и vk_TerminalSleep, и собрали новую vk_hook1C.dll, которая работает под 2008 сервер, не патчит BkEnd, не ругается на версии ODBC (не нужен ODBC33.DLL) и самое главное, при блокировке не грузит процессор :)

В общем принимайте наше с Old_Joe творчество.

В vk_hook добавлены 2 метода, позволяющие управлять блокировками и дедлоком

 

//глобальная переменная
	Перем vk_hook Экспорт;

//при начале работы системы	
	ЗагрузитьВнешнююКомпоненту(каталогИБ()+"vk_Hook1C.dll"); 
	vk_hook=СоздатьОбъект("Addin.vk_Hook1C");
	vk_hook.ПерехватSQLPrepare(); 
	vk_hook.ПерехватSQLExecDirect(); 
	vk_hook.МаксимальныйSleep=1024; 
	vk_hook.ОтключитьТаймаут = 1; //по умолчанию = 0
	vk_hook.ОтключитьДедлок = 0; //по умолчанию = 0

 

использован материал из статьи: http://www.kb.mista.ru/article.php?id=361

"Секретный релиз" 1С: //infostart.ru/public/82018/

UPD: 2.0.0.31

добавлен метод vk_hook.ВключитьПодмену = 1; // по умолчанию = 0

перед непосредственно запросом необходимо vk_hook.ВключитьПодмену = 1;
Можно конечно один раз включить и не выключать, но тут есть определенный риск. Так что все в ваших руках :)
Принципиально изменена подмена запроса.
В данной версии можно менять как весь запрос так и по части вхождения строки.
К примеру:

vk_hook.ТекстSQL = "SP3111=?"; 
vk_hook.НовыйSQL = "SP3111 in ('     4    ','     7    ') and ''<>?";
vk_hook.УстановитьЗаменуSQL(); 

Позволит везде использовать вместо равенства список значений.
В 

Остальной функционал описаный в статье не изменен.

См. также

HTTP сервер, HTTP асинхронный клиент, клиент ГИС МТ "Честный знак": внешние компоненты для 1С 7.7

Разработка внешних компонент WEB-интеграция Платформа 1С v7.7 Конфигурации 1cv7 Платные (руб)

Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и даже, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async или синхронный клиент HTTP для 1С 7.7 (публикация № 1152364) можно наладить обмен данными между удаленными информационными базами. С помощью компоненты HTTP_Async можно сначала послать несколько запросов к сайтам, веб-сервисам (в т.ч. к HttpSrv7), а затем обрабатывать данные по мере их поступления. Компонента GISMT в дополнение к HTTP_Async имеет функцию цифровой подписи и, таким образом, имеет все возможности для работы с API ГИС МТ "Честный знак" непосредственно из среды 1С 7.7.

2000 руб.

27.05.2022    7932    19    13    

31

Компонента ExchangeStruc (Структура Обмена). Прямой обмен данными между потоками, сессиями и окнами.

Разработка внешних компонент Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Россия Платные (руб)

Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.

7200 руб.

19.04.2023    4835    1    0    

3

Выбор из большого списка (для 1С 7.7)

Разработка внешних компонент Платформа 1С v7.7 Платные (руб)

Компонента для выбора значения из больших списков значений.

1200 руб.

02.12.2021    5848    2    19    

4

Форма для ввода количества товаров

Разработка внешних компонент Оптовая торговля Платформа 1С v7.7 Конфигурации 1cv7 Управленческий учет Платные (руб)

Расширяем уровень взаимодействия c пользователем с помощью новых возможностей - форма для ввода количества для перемещений и форма ввода количества с упаковками и штуками.

1200 руб.

08.09.2021    7423    0    2    

1

Внешняя компонента для преобразования файлов из/в кодировку Base64 в 1С 7.7

Разработка внешних компонент Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Эта внешняя компонента Base64.dll предназначена для платформы 1С версии 7.7. Используется для преобразования файлов из/в кодировку Base64 из встроенного языка 1С Предприятие. Компонента тестировалась на базе конфигурации Бухгалтерский учет для Казахстана, редакции 7.70.257.

10 стартмани

06.04.2021    9510    14    softmaker    12    

5

Криптография: внешняя компонента для 1С 7.7

Разработка внешних компонент Защита ПО и шифрование Платформа 1С v7.7 Абонемент ($m)

Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7.

1 стартмани

08.06.2020    9111    28    mdbruyfn    10    

9

Протокол UDP: внешняя компонента для 1С 7.7

Разработка внешних компонент Платформа 1С v7.7 Абонемент ($m)

Обмен сообщениями и небольшими файлами по протоколу UDP с 1С и внешними приложениями в локальной сети или сети VPN.

1 стартмани

23.05.2020    7347    5    mdbruyfn    0    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
100. Cthulhu 1 01.12.20 23:35 Сейчас в теме
(99): есть результат(ы)?..
(если таки нет - то таки когда-то ожидаются? если таки да - то когда ориентировочно?)
101. Ветер в поле 3 03.12.20 08:03 Сейчас в теме
(100) пока не напряг наших разработчиков переписыванием компоненты.
Мы временно переходили на уровень совместимости 80, но остались недовольны стабильностью и уровнем производительности.
Плюс у нас появились какие-то внутренние блокировки внутри SQL Server. В базе есть куча самописных хранимых процедур, отвечающих за API доступа внешних программ, они написаны и отлажены при уровне совместимости 100. Может это вызывает такое поведение. База достаточно большая (в районе 40+ ГБ), 200 пользователей 1С и еще больше сторонних периодически дергающих данные из базы.
Основной причиной желания использования компоненты было избавиться от задваивания внутренних идентификаторов объектов 1С (в основном страдают документы да и это легче выявляется). Компонента существенно снизила дублирование IDDOC, но не убрала это явление. Поэтому провести работы по переписыванию компоненты в первоочередном порядке не получится. Будет загрузка программистов чуть меньше, я попрошу заняться решением этой задачи. Сейчас на это никто не подпишется - все заняты.
Будут подвижки - я сообщу.
103. maxpiter 147 26.12.20 02:36 Сейчас в теме
(101)
Основной причиной желания использования компоненты было избавиться от задваивания внутренних идентификаторов объектов 1С (в основном страдают документы да и это легче выявляется). Компонента существенно снизила дублирование IDDOC, но не убрала это явление.

А вы уверены что это дело не в логике создания объектов? IDDOC поле уникальное и чтобы его задвоить нужно постараться, или я не правильно понял ваше сообщение?
Смысл этой компоненты, это перехватить сообщение от SQL о блокировки и не пустить его в 1С, чтобы та в свою очередь не отвалилась, т.к. не умеет обрабатывать такое.
БД сейчас 300+ гигов, работает порядка 120+ пользователей + автоматы по обмену с различными сайтами, почтой, своего рода API с БД на 1С 8... тьфу, тьфу, тьфу ни разу не сталкивались с дублированием идентификаторов.
Прикрепленные файлы:
104. Ветер в поле 3 01.01.21 09:26 Сейчас в теме
(103) Вы всё правильно поняли. Задваиваются и IDDOC и ID справочников
Во многом это поведение обусловлено тем, что в процедуре ПриЗаписи выполняется запись документа вручную, потом создаются элементы справочников и всё это в транзакции, чтобы добиться целостности. Если в процессе возникает транзакция, то есть приличная вероятность, что идентификаторы будут задвоены.
102. Ветер в поле 3 03.12.20 08:05 Сейчас в теме
Увидел, что ответил своим некорпоративным аккаунтом. mshi = Ветер в поле
Оставьте свое сообщение