1с ошибка загрузки mngsrv
Исходя из личного практического опыта поиска решения этой проблемы в Интернет, я выяснил, что у пользователей 1С:Предприятие 8.3 такая проблема случается не редко.
Общая причина ошибки
На самом деле ошибка преобразования XDTO является не какой-то определенной ошибкой, а является большим семейством ошибок возникающих при работе одного из базовых механизмов платформы 1С. Этот механизм обеспечивает передачу данных между различными подсистемами платформы, при этом данные из внутреннего представления одной подсистемы преобразуются в текстовый формат XML, передаются в другую подсистему, и там проходят обратное преобразование во внутреннее представление. Ошибка преобразования XDTO говорит, что прямом или обратном преобразовании обнаружено какое-то несоответствие, из-за которого оно не может быть выполнено.
Частные причины ошибки
Существует очень много частных причин ошибки преобразования XDTO. Сведения доступные под кнопкой Подробно могут помочь в понимании частной причины, но далеко не всегда.
Прежде чем приступить к диагностике причины ошибки XDTO, следует выполнить стандартные профилактические операции над ИБ: очистить кэш, проверить состояния файла, выполнить тестирование ИБ.
Взаимодействие Клиента и Сервера
При запуске 1С в режиме Тонкий клиент взаимодействие клиента с ИБ происходит с использование преобразования XDTO, и если оно приводит к ошибке, то в тех случаях, когда это возможно, следует воспользоваться режим Толстый клиент.
Сырые и Неоригинальные решения
Если ошибка преобразования XDTO возникает в неоригинальной конфигурации или неоригинальной обработке, то возможно, причина в неоригинальном коде, который не был должным образом оттестирован. Это возможно и в оригинальных решения от 1С после установки сырых обновлений.
В этом случае необходимо отказаться от использования неоригинального или сырого решения и вернуться к предыдущему состоянию кода из архива.
Ошибка преобразования XDTO при загрузке данных из файлов
Если ошибка XDTO возникает при загрузке данных из файла, то причину ошибки можно обнаружить в самом файле. В моем случае, я выполнял загрузку данных данных из файла XML в новую ИБ, версия которой была несколько новее, чем версия ИБ источника. Во время загрузки возникала ошибка:
Любая программа, установленная на компьютер, может время от времени работать неправильно. Периодические сбои, которые приводят к невозможности использования ПО, называются ошибки. Чтобы суметь диагностировать и устранять ошибки в 1С, пользователь должен хотя бы немного разбираться в особенностях работы программ. Наличие минимальных знаний позволяет решать проблемы самостоятельно.
Прежде чем рассматривать основные разновидности ошибок, стоит заметить, что они отличаются между собой по происхождению. Приложение может привести к физическому или логическому сбою. В результате 1С просто не запускается или начинает работать в режиме «Конфигуратор». Пользовательский режим бывает недоступен или, при использовании определенных команд, будет появляться сбой.
Чтобы научиться быстро исправлять ошибки в 1С необходимо изначально их проанализировать. Часто во всплывающем окне написана суть некорректного поведения, что помогает решить проблему.
Причины появления ошибки в 1С
Разберем основные моменты, связанные с частым появлением сбоев при работе с базой данных. Они возникают в разных ситуациях, и определить их истинную причину не всегда возможно.
Одна из самых частых причин нарушение работы связанна с компьютером, на который установлена база данных 1С. Рабочая область может автоматически закрываться из-за нехватки оперативной памяти на сервере. Все возникающие неисправности должны быстро устраняться. В противном случае есть вероятность потери данных.
Часто возникающие ошибки 1С
Все имеющиеся сбои выводят на экран разные уведомления. Одинакового текста не бывает. Чтобы проще ориентироваться, разделим существующие ошибки 1С на следующие пункты:
- Недостаточно памяти.
- Ошибка доступа.
- Ошибка формата потока.
- Ошибка СУБД: Файл базы данных поврежден.
- Неправильное отображение блоков формы.
- Внутренняя ошибка компоненты dbeng.
- Dump при запуске.
- Неверный формат хранилища.
- Ничего не работает.
Для того, чтобы научиться исправлять возникающие ошибки, рассмотрим каждый пункт по отдельности.
Недостаточно памяти
Подобный сбой проявляется только в том случае, если на выполнение операций с программой выделено мало оперативной памяти. Приложение не может обрабатывать большие объемы информации, поэтому выдает «Недостаточно памяти 1С». Это случается при формировании отчета, обработки «тяжелого» файла, обновлении конфигурации и т.д. Причина – мощности компьютера недостаточно.
Пользователь может самостоятельно решить проблему с памятью. По умолчанию операционная система выделят фиксированное значение гигабайт на обслуживание приложения: 32 bit ОС – 2 Гб, 64 bit – 4 Гб.
Увеличить размер выделенной памяти можно вручную. Для этого запускается адресная строка (Пуск – Выполнить, вводиться фраза cmd). После нажатия «Ентер» достаточно ввести фразу bcdedit /set increaseuserva 4096 и подтвердить действие (клавиша «Enter»). Цифра 4096 – новый выделяемый объем «оперативки». Выполняется перезагрузка системы. Проблема должна быть устранена.
Ошибка доступа
Она возникает, если учетная запись не имеет достаточно прав. Проявляется при выполнении определенного действия, которое доступно только ограниченному кругу пользователей. Для исправления ситуации достаточно изменить роль выбранного профиля в конфигураторе (вкладка «Администрирование – Пользователи»). В некоторых случаях это увеличивает безопасность базы данных, если необходимо защитить файлы от изменения сторонними людьми.
Ошибка формата потока
Когда пользователь только запускает программу, на экране может появиться окно сбоя. Оно предлагает завершить работу или перезапустить. Причиной выступает некорректное завершение работы приложения.
Устранение подобной ошибки 1С выполняется простой чисткой кэша. Для этого необходимо перейти в папку, где хранятся временные файлы. В Windows 7 и выше она находится по адресу C:\Users\Username\AppData\Local\1C или C:\Users\Username\AppData\Roaming\1C. Для Windows ХР другой путь – Local Settings\Application Data\1C\. Все файлы, начинающиеся на 1cv8, кроме «1Cv8.1CD» полностью удаляются.
Если «Ошибка формата потока» возникает в процессе работы, то нужно провести тестирование (Администрирование – Тестирование и исправление), выбрать первые 2 галочки и запустить процесс.
Ошибка СУБД: Файл базы данных поврежден
Если всплывает информационное окно с подобной надписью, неисправность базы данных решается тестированием файла и всей информационной базы. Такое мероприятие может проводиться 2 способами:
- Запуск утилиты chdbfl.exe. Эта программа предназначена для того, чтобы проверять целостность базы данных при совместном ее использовании с информационной базой. Данный метод хорош тем, что дает возможность решать сбои даже в тех ситуациях, когда конфигуратор запустить невозможно. Сначала выполняется резервное копирование информации. В папке, где установлен 1С (директория bin) находится файл chdbfl.exe. Он запускается, в окне прописывает путь к файлу базы данных и ставится галочка, чтобы провести исправление ошибок. Нажимается кнопка «Выполнить». После завершения процесса все должно заработать. Если нет – используется конфигуратор.
- Через конфигуратор. Нужное окно вызывается после нажатия «Администрирование – Тестирование и исправление». На экране появляется форма, где выставляются галочки на следующе строчки: «Реиндексация таблиц…», «Проверка логической целостности…», «Проверка ссылочной…», «Реструктуризация таблиц…», «Тестирование и исправление» и 2 раза «Создать объекты». Нажимается кнопка «Выполнить». После завершения процедуры сбой устраняется.
Неправильное отображение блоков формы
Такая неисправность возникает от разных факторов. Чтобы привести программу к нормальной работоспособности, пользователю необходимо последовательно выполнить несколько команд. После проведения каждой проверяется устранение сбоя:
Если приведенные методы не помогают, рационально будет провести обновление платформы.
Внутренняя ошибка компоненты dbeng
Dump при запуске
Возвращение 1С в рабочее состояние проводится простым обновлением MS Visual Studio (Visual C++) и дополнительными манипуляциями. Чтобы отследить конкретный файл, в котором возникает ошибка, открывается «Просмотр событий». Для этого пользователь переходит в «Панель управления – Система и безопасность – Администрирование». С левой стороны раскрывается «Журнал Windows – Приложение».
На экране появляется список ошибок и точное расположение поврежденного файла. После установки новой версии MS Visual Studio (Visual C++) с папки System32 копируется одноименный файл dll и вставляется в папку платформы 1С. Проблема решилась.
Неверный формат хранилища
Ничего не работает
Если программа перестала нормально работать без видимых причин, значит пользователю придется самостоятельно искать неисправность. Для восстановления работоспособности базы данных проводятся следующие мероприятия:
- чистится кэш;
- открывается файл chdbfl.exe из папки установки приложения и выполняется исправление;
- выполняется запуск «Конфигуратора» для тестирования и исправления сбоев;
- обновление «1С».
Если это не критичная ошибка, она должна исправляться при установке актуальной версии программного комплекса. В остальных ситуациях необходимо пользоваться помощью профессиональных мастеров, которые отлично понимают принцип подобных продуктов.
После установки сервера 1С на Linux у пользователей могут возникнуть проблемы при попытке подключиться к нему. Данные проблемы могут быть связаны как с настройками на сервер или клиентском компьютере, так и с настройками сетевой инфраструктуры. Рассмотри наиболее часто встречающиеся ошибки и методику поиска и исправления причин этих ошибок.
Оглавление:
Этот хост неизвестен / No such host is known
Пример полного текста ошибки:
Ошибки соединения с сервером 1С:Предприятия 8.3:server_addr=tcp://sony2 descr=11001(0x00002AF9):
Этот хост неизвестен
line=1068 file=src\DataExchangeCommon.cpp
server_addr=tcp://1s-on-1c-1 descr=11001(0x00002AF9): No such host is known line=1068 file=src\DataExchangeCommon.cpp
Описание:
Ошибка может возникать как при работе с консолью администрирования 1С:Предприятия(добавление сервера, создание базы…), так и при запуске информационной базы.
Такая ошибка характерна, когда компьютер пользователя не обладает информацией о соответствии ip-адреса dns-имени сервера.
Решение:
Настроить DNS-адресацию или прописать адреса в файл hosts.
В случае, если кажется, что все имена прописаны верно, необходимо:
1. Проверить еще раз. Скорее всего, где-то ошибка.
2. Сравнить, как хост прописан на самом сервере и на компьютере пользователя. Имена должны быть одинаковыми.
Часто ошибка связана с тем, указан в имени доменный суфикс или нет.
- Возможно, у вас в консоли сервера отображаются не по DNS-имени, а по IP-адресам.
- Возможно, клиент не сможет сопоставить IP-адрес DNS-имя(в случае, если сервер 1С находится в другой сети, и вы подключаетесь к кластеру напрямую).
Не правильно:
Правильно:
Необходимо удалить кластер. И собрать из консоли администрирования его заново.
Ошибки соединения с сервером 1С / рабочим процессом 1С
Описанные далее ошибки могут возникать как при работе в консоле администрирования 1С, так и при запуске информационной базы.
Попытка установить соединение была безуспешной
Пример полного текста ошибки:
Ошибка соединения с сервером 1С:Предприятия 8.3:server_addr=tcp://son1c:1541 descr=192.168.0.101:1541:
Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.
Сервер 1С:Предпрятия не обнаружен
Пример полного текста ошибки:
Сервер 1С:Предприятия не обнаруженНе запущен ни один рабочий процесс. Соединение с информационной базой невозможно.
Ошибка установки соединения
Пример полного текста ошибки:
Ошибка установки соединенияВыполняется ожидание возможности запуска.
При появлении возможности, запуск будет выполнен автоматически.
Методика устранения ошибок соединения с сервером 1С
В данном случае необходимо понимать, что:
- Либо процессов нет;
- Либо не удается «увидеть» процессы в связи с отсутствием доступа;
- Либо происходит обращение по другому адресу.
1. Сначала проверим есть ли на сервере 1С в запущенные рабочие процессы rphost.
Анализ причин роста сеансовых данных
Платформа "1С:Предприятие" в своей работе постоянно использует механизм, называемый "сеансовые данные". В этих данных хранится служебная информация, необходимая для работы сеанса "1С:Предприятия". Например, все, что введено в поля ввода на форме, при серверных вызовах сбрасывается в сеансовые данные.
При вызове методов: ПоместитьВоВременноеХранилище, ПоместитьФайл, НачатьПомещениеФайла, значения указанные в параметрах, записываются в сеансовые данные.
При фоновом исполнении отчетов СКД, результат отчета помещается в сеансовые данные, а затем передается в клиентскую часть.
С точки зрения операционной системы, сеансовые данные представляют собой файлы в каталоге …\srvinfo\reg_<номер порта>\snccntx<GUID>.
С точки зрения внутренней структуры - это noSQL база данных (key-value storage).
Особенности работы платформы с сеансовыми данными
За работу с сеансовыми данными отвечает менеджер кластера – rmngr.exe Если в кластере несколько рабочих серверов, то сеансовые данные будут расположены в соответствии с требованиями назначения функциональности.
Если требования не заданы, то сеансовые данные распределятся равномерно по всем рабочим серверам.
Сеансовые данные растут блоками по 64 Мб. Когда заканчивается блок, то менеджер кластера выделяет следующий блок в 64Мб.Блоки большего объема возможны в результате помещения объемных данных во временные хранилища.
Для обеспечения скорости работы, платформа всегда пишет новые данные в конец, аналогично transaction log в СУБД. Таким образом, размер сеансовых данных постоянно растет. Во всем объеме сеансовых данных, существуют как актуальные, так и устаревшие данные. Актуальность данных определяется способом их помещения:
- Если сеансовые данные помещены из формы и в качестве идентификатора передается идентификатор формы (ЭтаФорма.УникальныйИдентификатор), то данные считаются актуальными, пока открыта форма.
- Если в качестве идентификатора передан УникальныйИдентификатор, не являющийся уникальным идентификатором формы (Новый УникальныйИдентификатор), то значение перестанет быть актуальным после завершения сеанса пользователя.
- Если ничего не передано, то значение перестанет быть актуальным при любом следующем серверном вызове.
Перед выделением следующего блока на диске, проверяется, прошло ли 5 секунд с момента выделения предыдущего блока. Если 5 секунд прошло, то запускается "сборщик мусора" (key value garbage collector). Сборщик оценивает процент актуальных сеансовых данных в общем объеме. Если актуальные данные занимают менее 25% от общего объема, то все актуальные данные копируются в новые файлы, а затем все старые файлы сеансовых данных удаляются.
Так как каждый сеанс (клиенты, фоновые задания, web-сервисы) в своей работе постоянно пишет информацию в сеансовые данные, то при большом количестве пользователей, скорость дисковой подсистемы, на которой расположены файлы сеансовых данных, играет очень важную роль. При большом количестве пользователей, рекомендуется располагать файлы сеансовых данных на максимально быстрых дисках. Желательно RAM-drive. Отказоустойчивость дисков не важна, т.к. при потере сеансовых данных, никакой важной информации утеряно не будет.
Следует отметить порядок размещения сеансовых данных. Если поместить во временное хранилище двоичные данные или файл, то эти данные пройдут в качестве потока байт через rphost, затем в rmngr, который сбросит этот поток на диск. Если же, в качестве помещаемого значения, будет выступать коллекция (таблица значений, результат запроса, массив…), то сначала вся эта коллекция разместиться в памяти rphost, а только затем преобразуется в поток байт и будет передана в rmngr.
Размещение сеансовых данных в памяти
При работе кластера "1С:Предприятия", файлы сеансовых данных отображаются в память (mapping). Подробнее см. статью.
За счет данного механизма, процесс работает с файлом как с оперативной памятью. Файл загружается в память не целиком, а только необходимая часть.
Однако, в операционной системе Windows, отображенные в память файлы, влияют на счетчик Memory\Available Mbytes. При сильном росте сеансовых данных можно увидеть следующую картину:
Свободное место на диске, где расположены сеансовые данные, уменьшается синхронно со свободной памятью сервера. На самом деле, если посмотреть данные RamMap то видно, что большая часть оперативной памяти выделена под Mapped File
Размер памяти, указанный в колонке Standby – это неиспользуемая память (фактически свободная). При запросе памяти любым процессом, ему будет выделена память из этой области.
Следует учитывать данную особенность счетчика Memory\Available Mbytes при построении систем мониторинга или приложений, которые опираются на объем доступной оперативной памяти.
Для косвенной оценки эффективности работы операционной системы с сеансовыми данными, можно использовать счетчик Memory\Page Faults/sec, который показывает на сколько часто процессы обращаются за страницами в память, но не находят их там и подгружают с диска.
Если значение данного счетчика велико, то это может свидетельствовать о нехватке оперативной памяти для кэширования в ней сеансовых данных. В этом случае, необходимо принять решение об увеличении оперативной памяти, либо об оптимизации работы приложения с сеансовыми данными.
Проблемы сеансовых данных
Ошибка совместного доступа к файлу snccntx.dat
При появлении данной ошибки необходимо действовать по алгоритму:
1. Проверить права на папку сеансовых данных для пользователя, от которого запущена служба сервера "1С:Предприятия". Должны быть полные права.
2. Открыть на рабочем сервере диспетчер задач, установить видимость колонки "Командная строка"
3. Необходимо найти процессы rmngr.exe с одинаковым значением параметра –pid.
4. Открыть консоль кластера. Развернуть ветку кластера, порт которого соответствует параметру –regport , найденных rmngr.exe с одинаковым значением параметра –pid
5. Сопоставить PID из диспетчера задач с PID в консоли кластера. Тот процесс rmngr.exe, которого нет в консоли – принудительно завершить.
Закончилось место на диске, где расположены сеансовые данные
Необходимо следить за наличием свободного места на диске, где расположены сеансовые данные.
Не следует размещать файлы технологических журналов на одном диске с сеансовыми данными.
Если на диске, где расположены сеансовые данные, закончится место, то картина будет совершенно "апокалиптическая". Менеджер кластера будет постоянно завершаться с формированием дампа. Начнутся сотни попыток запусков рабочих процессов, которые сразу же будут завершаться с ошибками. После того, как на диске появится свободное место, сервер "1С:Предприятия" запустится в нормальном режиме.
Так же, необходимо следить за размером самих сеансовых данных. Если периодически их размер становится существенным, то необходимо обратить на это особое внимание. Следует помнить, что при срабатывании "сборки мусора" необходимо наличие свободного места на диске, в размере 25% от общего объема сеансовых данных. Если этих 25% не будет, то кластер завершит свою работу аварийно.
Изменить расположение сеансовых данных, можно указав параметр –d в строке запуска службы агента сервера.
В данном каталоге, также расположены: реестр кластера, индекс полнотекстового поиска и журнал регистрации.
Влияние циклических ссылок на рост сеансовых данных
Чаще всего при выполнении процедуры ПоместитьВоВременноеХранилище, указывается идентификатор формы (ЭтаФорма.УникальныйИдентификатор). Как написано в документации, при указании идентификатора формы данные перестают считаться актуальными после того как форма будет закрыта.
Однако, если форма содержит в себе циклические ссылки (см. статью), то после закрытия формы она не уничтожается. Это приводит следующим отрицательным эффектам:
- данные формы остаются в памяти
- сеансовые данные, выделенные для формы, считаются актуальными, пока не будет завершен сеанс
Чтобы избежать данной ситуации, необходимо исключить все циклические ссылки в форме (см. статью).
Необходимо стараться формировать отчеты СКД в фоновом режиме. Так как результат отчета помещается во временное хранилище фоновым заданием, то после завершения задания данный результат будет считаться неактуальным.
Методика анализа роста сеансовых данных
Сбор данных
Необходимо собрать технологический журнал:
Данный технологический журнал может занимать значительный объем. Поэтому необходимо располагать его на дисках имеющих достаточно свободного пространства, периодически переносить старые файлы журнала на другой диск и там архивировать (сохраняя структуру папок).
После того, как технологический журнал будет собран, необходимо провести "парсинг" и выгрузить его данные в файлы csv формата:
На основании данных, которые собраны в папках rmngr_*, необходимо сформировать csv файл вида:
- <файл ТЖ> – имя файла технологического журнала,
- <CallID> – значение свойства CallID,
- <InBytes> - значение свойства InBytes.
В файле …/rmngr_7188/ 15063011. log есть строка:
Данная строка должна быть преобразована в строку:
Необходимо исключить из итогового файла строки с InBytes=0, т.к. они не представляют интереса, но занимают значительный объем.
На основании данных, которые собраны в папках rphost_*, необходимо сформировать csv файл вида:
- <процесс>– имя папки рабочего процесса,
- <файл ТЖ> – имя файла технологического журнала,
- <t:clientID> – значение свойства t:clientID,
- <CallID> – значение свойства CallID.
В файле …/ rphost_1352 / 15063011 .log есть строка:
Данная строка должна быть преобразована в строку:
На основании данных, которые собраны в папках rphost_*, необходимо сформировать csv файл вида:
- <процесс> – имя папки рабочего процесса,
- <t:clientID> – значение свойства t:clientID,
- <Usr> – Имя пользователя из свойства Usr.
В файле …/ rphost_1352 /15063011.log есть строка:
Данная строка должна быть преобразована в строку:
В итоге должно получиться 3 файла: scall.csv, call.csv, conn.csv
Пример создания файлов csv, на основании данных технологического журнала, см. в обработке.
Создание базы данных для анализа
Необходимо создать пустую базу данных (MS SQL Server), в которую добавить таблицы:
Затем, в эти таблицы необходимо загрузить данные из соответствующих csv файлов. Сделать это можно с помощью SQL Server Integration Services
После того, как информация будет загружена в таблицы, можно проводить анализ.
Анализ работы с сеансовыми данными
TOP – 10 пользователей в разрезе процессов и времени
Запрос покажет топ-10 пользователей, которые поместили больше всего сеансовых данных в час. Затем необходимо разобраться с самым верхним (в текущем случае):
Т.е. в процессе rphost_1352 за час с 11-00 по 12-00 пользователь с идентификатором 518 записал в сеансовые данные 2 046 616 858 байт (2Гб).
Далее, необходимо найти все идентификаторы вызовов, которые записывал сеанс 518:
Читайте также: