Челябинская область
- / Главная   /   Технические статьи   /  
1С УПП Ошибка SDBL:Соединение с базой данных не удерживается
Имеется 1С УПП 1.3.3.1. Клиент-серверный вариант. Сервер под управлением Ubuntu 12.04 + postgresql 9.2.1 + платформа (сервер) 1С 8.2.19.
Рабочие станции под управлением Windows + платформа 8.2.19
Периодически (часто) на рабочих станциях вылетает ошибка Ошибка SDBL:Соединение с базой данных не удерживается. Отпустить конктекст соединения невозможно.
Причём ошибка вылетает только при работе с базой УПП. При работе с другими базами (конфигурациями) такой проблемы замечено не было.
В интернете много «информации» по этой проблеме, но решений точных нет. Причём в основном пишут об этой проблеме те, кто использует сервер под Windows и базу данных MSSQL. Соответственно проблема не связана с серверной платформой и базой данных.
Также на сервере 1С (где работает кластер и рабочие процессы) был замечен самопроизвольный перезапуск рабочих процессов rphost и менеджер rmngr. Причём по наблюдениям появление ошибки практически совпадало с временем перезапуска.
Перезапуск самопроизвольный (падение)! В настройках кластера в настройках перезапуска рабочих процессов везде нули!
Решение проблемы было найдено самостоятельно с помощью анализа логов сервера 1С и Google.
В логах сервера 1С были замечены ошибки:
descr=Too many open files line=922 file=./src/DataExchangeCommon.cpp’
Google подсказал, что надо увеличить количество открываемых файлов.
Михаил Сайко
Различные конфигурации 1С из-за сложности кода, бывает, огорчают администраторов и пользователей ошибками. Многие из них легко устраняются, но существуют и те, что способны испортить достаточно «крови» ИТ-службам. Одна из таких ошибок известна в кругах специалистов по 1С под именем «Ошибка SDBL».
Исправление ошибки SDBL в 1С
Обычно сообщение об ошибке SDBL мы видим при обновлении конфигурации, сохранении изменений или работе обменов данными. Чаще всего сопровождаться она следующими сообщениями:
- Ошибка при полнотекстовом индексировании;
- Попытка вставки значения недопустимого типа;
- Поле таблицы не может принимать значение NULL;
- Ожидается выражение (pos = );
- Пропущена точка с запятой;
- Выход за пределы размерности;
- Поле определено неоднозначно.
Также эта ошибка может сопровождаться и другими информационными сообщениями. Чтобы решить эту проблему, администраторы 1С для начала применяют достаточно простые решения:
- Очистка КЭШа на сервере и компьютере пользователя, где появилась ошибка. Необходимо выйти из 1С, найти все папки с названиями типа «bd5c8ea4-b65f-4c23-a9c8-2dccfb0b15fa» в папке «Application Data» и удалить их;
- Перезагрузка сервера приложений 1С. Также может помочь включение и выключение всех связанных сервисов – SQL и его агента. Заходим на сервер, находим службу «Агент сервера 1С» и останавливаем ее с помощью контекстного меню. Аналогично поступаем со службами «SQL Server» и «Агент SQL Сервера» на сервере SQL. Затем включаем в обратной последовательности;
- Механизм «Тестирование и исправление ИБ», доступный в конфигураторе. В нужной информационной базе заходим в «Администрирование» — «Тестирование и исправление. » и запускаем процесс;
- Выгрузка базы данных в файл формата DT и загрузка его обратно в ту же информационную базу. Также выполняется в режиме конфигуратора через меню «Администрирование». Используются команды «Выгрузить информационную базу. » и «Загрузить информационную базу. »;
- Загрузка из резервной копии, если она сделана недавно. Резервные копии необходимо делать регулярно и дополнительно перед каждым серьезным действием с информационной базой. Резервные копии можно делать с помощью SQL MS или конфигуратора через выгрузку файла формата dt;
- Обновление платформы до более новой версии с официального портала ИТС. Необходимо скачать с сайта ИТС последний релиз платформы и установить на сервере и клиентских компьютерах.
Если все эти методы не дали результата, то для клиент-серверного варианта базы 1С можно попробовать очистить таблицы _ConfigChngR_ExtProps и _ConfigChngR. Делать это доверьте профессионалу, умеющему работать с MSSQL. В подавляющем большинстве случаев один из этих методов обязательно поможет. Если же ошибка осталась, и у вас нет резервной копии, следует обратиться к профессионалам за помощью.
Среди набора патчей, которые сегодня выпустила компания Microsoft, выделяется один интересный фикс под номером MS15-011. Этот патч закрывает уязвимость в алгоритме работы Active Directory, которая была обнаружена ещё в январе 2014 года работниками компании JAS Global Advisors. Всё это время существование бага, названного JASBUG, держалось в секрете. Интересно, что эта уязвимость была и в самой первой версии Active Directory, появившейся аж в 2000 году.
Active Directory – это система, позволяющая администраторам проводить настройку компьютеров пользователей, находящихся в их сети. Компьютеры принимают команды от сервера и выполняют их. Уязвимость была в алгоритме обработки DNS. Компьютер пользователя теоретически при помощи атаки вида «man-in-the-middle» мог быть обманут таким образом, что вместо корпоративного сервера он стал бы принимать команды от ложного сервера, поднятого хакером.
В записи в своём блоге Microsoft подробно описала возможную технологию атаки: