Добрый день!
Столкнулись с периодической проблемой в работе комплексного коннектора Битрикс24 с 1С:Управление торговлей 11. Буду очень признателен разработчикам или участникам форума за помощь в диагностике и поиске решения.
Описание проблемы
Интеграция работает через Push&Pull (Long Polling). Соединение запускается в отдельном сеансе 1С и может нормально функционировать продолжительное время — иногда несколько дней.
Однако периодически возникает ошибка:
Конфликт блокировок при выполнении транзакции
После этого длительное соединение прерывается, в 1С появляется окно ошибки с предложением сформировать отчёт. Сам процесс 1С при этом остаётся запущенным, но для продолжения обмена приходится закрывать ошибку и повторно запускать соединение с Битрикс24.
Проблема повторяется на разных версиях коннектора и платформы.
Наша конфигурация
1С:Предприятие — 8.3.27.2342 (ранее 8.3.27.2214).
Управление торговлей — 11.6.2.72.
Комплексный коннектор Битрикс24 — 6.0.0.3 (ранее 6.0.0.2 и 6.0.0.1).
Битрикс24 — коробочная версия.
Сервер 1С — Windows Server 2016.
Информационная база — файловая.
Для сотрудников организована веб-публикация через IIS.
Для базы УТ используется отдельный пул IIS, один рабочий процесс.
Одновременно с интеграцией базой пользуются сотрудники через веб-клиент. Обычно веб-подключений немного, порядка 1–2.
Соединение с Битрикс24 запущено в отдельном сеансе 1cv8c.exe.
Точное место возникновения ошибки
В последних отчётах зафиксирована следующая последовательность:
Б24_К_ЛонгПуллингКлиентСервер.Модуль(128): Б24_К_ОбщегоНазначенияВызовСервера.ДобавитьВЛог(...) Б24_К_ОбщегоНазначенияВызовСервера.Модуль(1277): НовыйЭлемент.Записать(); Конфликт блокировок при выполнении транзакции
Насколько я могу судить по стеку, исключение возникает при записи сообщения в собственный журнал коннектора — через ДобавитьВЛог().
При этом сама запись в журнал, судя по всему, не является основной операцией обмена, однако ошибка её выполнения приводит к прерыванию Long Polling.
Аналогичные конфликты возникали и ранее, в октябре, на более старых версиях.
Что уже проверяли
Проверяли настройки IIS для веб-публикации УТ. Используется один рабочий процесс, отключены перезапуски по времени, количеству запросов и порогам памяти, отключено завершение процесса по простою. Явных признаков связи с перезапусками IIS не обнаружили.
Проверяли работу соединения под разными пользователями 1С. Ошибка воспроизводится и под отдельным пользователем, который явно не учавствует в веб подключении.
Обновили платформу, конфигурацию УТ и коннектор до указанных выше версий.
Отключали настройку хранения истории взаимодействий, которую ранее использовали для диагностики интеграции. На повторение данной ошибки это, по всей видимости, не повлияло.
В чём хотелось бы разобраться
Буду благодарен, если подскажете:
Известна ли подобная проблема с ДобавитьВЛог() при работе комплексного коннектора с файловой базой УТ?
Может ли такой конфликт возникать из-за одновременной работы веб-клиентов через IIS и сеанса Long Polling? Или следует искать причину непосредственно в механизме записи журнала коннектора?
Предусмотрена ли обработка подобных конфликтов при записи служебных сообщений? Возможно ли, чтобы временная невозможность записать информационное сообщение не приводила к полному прерыванию длительного соединения, если это не влияет на корректность самого обмена?
Есть ли рекомендуемые настройки для файлового варианта УТ при использовании комплексного коннектора? Возможно, мы упускаем какие-то особенности фоновых заданий или транзакций.
Какие дополнительные события технологического журнала желательно собрать, чтобы определить причину конфликта?
При необходимости могу предоставить ZIP-отчёты платформы по каждому из случаев ошибки, технологические журналы, полные стеки исключений и дополнительные сведения о конфигурации.
Проблема для нас достаточно существенная, поскольку после прерывания Long Polling обмен останавливается до повторного запуска соединения. Очень хотелось бы устранить первопричину
Заранее большое спасибо за помощь и за развитие коннектора!