Ошибка выделения памяти 1с sql hresult 80004005

Решение ошибки hresult 80004005 в 1C? Персональный менеджер постоянно на связи? Стоимость работ программиста от 1800 руб./час. Смотрите отзывы и обращайтесь!

Пользуясь базами данных любой программы 1С, сотрудники предприятий и организаций часто сталкиваются с непредвиденными ситуациями. Пожалуй, одна из самых частых — когда работа программы внезапно завершается по причине того, что администратор разорвал контакт с сервером.

В данном случае Microsoft OLE DB Provider for SQL Server выдаёт такую информацию: «Неопознанная ошибка hresult 80004005». При этом главным признаком проблемы является невозможность выгрузить информацию в базу.

Следует отметить, что ошибки, содержащие именно код 80004005, встречаются постоянно. У них есть особая классификация, которую при желании можно найти в соответствующей литературе.

Ошибка выделения памяти hresult 80004005

Для начала нужно провести проверку конфигурации. Там может содержаться мусор (иными, словами, информация, которая является некорректной). Необходимо проверить конфигурацию с помощью соответствующей команды. Вы увидите флажок, предназначенный для того, чтобы проверить её логическую целостность. Если имеются проблемы, пользователь будет уведомлен об этом с помощью сообщения.

Данные, являющиеся неверными, система удалит в автоматическом режиме, но для этого нужно дать ей доступ, чтобы она изменила главный объект. К примеру, если вы работаете в облачном хранилище, его надо просто захватить.

Поддержка конфигурации требует её проверки и у поставщиков. С этой целью:

  • нужно сохранить данные о конфигурации поставщиков. Для этого используйте CF-файл;
  • теперь необходимо провести загрузку файла в обновлённую базу;
  • выполните операцию, которая описана в п.1.

При получении сообщения об исправлении ошибки имейте в виду то, что конфигурация, имеющаяся у поставщика, содержала неправильные данные. Если такое произошло, снимите свою конфигурацию с поддержки и установите её снова. При этом её надо объединить с новой (от поставщика).

Сейчас уже любой релиз, который выпускает 1С, не имеет таких сложностей.

Ошибка hresult 80004005

Сопутствующая проблема и методы её решения

С ситуацией, описанной ранее, тесно связана ещё одна, происходящая параллельно. Выглядит она так: 10007066.

Суть проблемы: когда используется СУБД MS SQL SERVER, во время записи объекта из базы с несколькими колонками (например, «Значения» и «Хранилища»), часто случается другой тип ошибки.

Выглядит она таким образом:

Ошибка СУБД:Microsoft OLE DB Provider for SQL Server: String data length mismatchHRESULT=80004005.

Когда происходит ошибка 1с hresult clr 80004005, программа завершает свою работу в аварийном режиме.

Если вы ознакомитесь во время загрузки программы со специальным журналом (речь идёт о технологическом журнале), там есть табличка, содержащая информацию об этих хранилищах.

С помощью средств MS SQL Server Query Analizer нужно найти в табличке несколько колонок image и сделать для каждой следующий запрос

select top 10 DATALENGTH(_Fld4044 from _InfoReg4038  order by DATALENGTH(_Fld4044) desc

При этом, со стороны стандартных проверок, проводимых платформой (chdbfl), поступит информация о том, что база полностью в порядке.

Ошибка выделения памяти hresult 80004005 (на английском это out of memory for query result 1с) может происходить вследствие различных причин, имеющей общую черту. Для системы 1С это, прежде всего, недостаток оперативной памяти. Если говорить точнее, речь идёт о некорректном применении возможностей памяти, поэтому для решения задачи лучше использовать несколько косвенных алгоритмов.

Необходимо сделать рестарт (перезапуск) сервера. Таким образом памяти, которая доступна для работы, временно станет больше. Также есть возможность воспользоваться сервером в 64 разряда, содержащем приложения.

Исходя из опыта, ошибка СУБД hresult 80004005 чаще определяется двумя факторами:

  • данные хранятся в хранилище значений (реквизите);
  • в таблице конфигураций содержатся двоичные данные объёмом более 120 мегабайт.

Когда советы от сотрудников 1С не приносят результата (ошибка 1с hresult 80004005 остаётся), попробуйте воспользоваться другой пошаговой инструкцией:

Наши постоянные клиенты по 1С:

Корона Лифт

Гознак

Накфф

Рембаза

Rozara

  • используйте все базы, включив у них все фоновые задачи;
  • в 8.1.11. должен появиться переключатель о запрете на фоновые задачи (во время создания базы);
  • сделайте перезапуск сервера.

Имеет смысл проверки работоспособности. Тем не менее вследствие утечек памяти проблема может возникнуть снова — после перезапуска. В этом случае целесообразно:

  • воспользоваться инструментами sql и сделать бэкап;
  • снять базу с поддержки;
  • выгрузить  cf.

Во время любых действий следует копировать файлы в резерв, так как в любой момент может возникнуть необходимость возвращения к исходному статусу информации. Далее надо убрать в менеджменте консоли (config) запись «более 120 мегабайт» и провести загрузку конфигурации (не объединять, а загрузить).

Есть ещё один способ, с помощью которого неопознанная ошибка субд hresult 80004005 может быть исправлена. Нужно открыть конфигуратор и снять конфигурацию, не сохраняя её. Далее, сохранив, нужно поместить её в отдельный файл без сохранения её изменённого вида.

Выполните в SQL операцию, предназначенную для конкретной базы:

DELETE FROM dbo.Config WHERE DataSize > 125829120

После выполнения этой команды проведите загрузку сохранённой конфигурации.

Что касается радикальных шагов, используемых в особо трудных ситуациях, иногда помогает такая схема:

  • удалите таблицу config из базы данных, воспользовавшись менеджментом консоли DROP TABLE [dbo].[Config];
  • проведите загрузку конфигурации (не «объединить»,а именно «загрузить»).

После проведения проверки проблема должна уйти.

  • Стоимость работ специалистов IT Rush — 2000 руб./час
  • Абонемент от 50 часов в месяц – 1900 руб./час
  • Абонемент от 100 часов в месяц – 1800 руб./час

Нам доверяют:

Я
   claus66

14.08.15 — 09:53

Добрый день, Уважаемые.

Подскажите пожалуйста, в какую сторону копать и что можно сделать. Ситуация такая:

Стоит комп, на его борту i7 — 4771, ОЗУ 32 ГБ.

Стоит сервер 1с 8.3, (8.3.6.2100), конфигурация ТиС (11), стоит SQL 2012, все это дело подружено между собой. При закрытие мес. вылетает ошибка: «Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Ошибка выделения памяти HRESULT=8000400»

Под SQL выделено 16 гб из 32 гб. файл «имя базы_log» в SQL до 8 гб.

восстановление в sql: «Simple»  

Буду признателен за помощь и совет, что можно попробовать.

   shuhard_серый

1 — 14.08.15 — 09:54

(0) а SP на сиквеле стоит ?

   shuhard_серый

2 — 14.08.15 — 09:56

(1) +1 и код у ошибки странный, там символов должно быть больше, например всем известная  80004005

   claus66

3 — 14.08.15 — 10:09

(1) нет, не стоит

   claus66

4 — 14.08.15 — 10:10

(2) Ошибка слово в слово, буква в букву

   ДенисЧ

5 — 14.08.15 — 10:10

(3) Надо себя заставить…

   ДенисЧ

6 — 14.08.15 — 10:10

http://catalog.mista.ru/public/18771/

   shuhard_серый

7 — 14.08.15 — 10:11

(3) надо установить

(4) не верю, в названии топика 80004005

по ней всё ясно — http://www.gilev.ru/err80004005/

   claus66

8 — 14.08.15 — 10:13

(5) думаете с SP пройдет ошибка ?!

   claus66

9 — 14.08.15 — 10:15

(7) сори, действительно.. ошибся ))) виноват каюсь 80004005

   shuhard_серый

10 — 14.08.15 — 10:15

(8) гарантий нет, но SP очень часто снимает такого рода ошибку

   shuhard_серый

11 — 14.08.15 — 10:16

(9) читай Гилева — там всё более чем очевидно

   claus66

12 — 14.08.15 — 10:16

ладно спасибо Вам большое, на сайте Гилева, читал про эту ошибку, но ошибка звучало чуть чуть не так: Неопознанная ошибка, а у меня Ошибка выделения памяти

   shuhard_серый

13 — 14.08.15 — 10:20

(12) да, эта ошибка многолика и Гилев писал про неё в 2013 году, рецепты тем не менее универсальны

  

claus66

14 — 14.08.15 — 10:23

(13) спасибо, буду пробовать..

TurboConf — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

На ИТС часто даются описания кодов ошибок, но они не всегда исчерпывающие. В этой статье мы будем пытаться продолжать «исчерпывать» 🙂

При эсклуатации баз данных 1С вы можете сталкнуться с такой ситуацией:

Сеанс работы завершен администратором.
по причине:
Соединение с сервером баз данных разорвано администратором
Microsoft OLE DB Provider for SQL Server: Неопознанная ошибка
HRESULT=80004005

Признаки проблемы: нельзя выгрузить в dt

Внимание! Ошибок с кодом 80004005 уйма, более подробно классофикацию я описал здесь http://www.gilev.ru/1c/mssql/errsql.htm . Здесь же мы говорим именно о «неопознанной ошибке» 🙂

Сотрудники 1С рекомендуют решать проблему так:

1. Проверить конфигурацию на наличие некорректной информации (мусора). Для этого следует выполнить команду «Проверка конфигурации» с установленным флажком «Проверка логической целостности конфигурации». При выявлении проблем будет выдано сообщение. Некорректная информация при этом будет удалена автоматически, однако следует обеспечить доступность для изменения корневого объекта конфигурации (напимер, при работе с хранилищем его следует захватить).

2. Если Ваша конфигурация находится на поддержке, следует подобным образом проверить конфигурацию поставщика. Для этого в настройке поддержки следует сохранить конфигурацию поставщика в cf файл, загрузить его в новую базу и выполнить описанную в пункте 1 процедуру. В случае, если было получено сообщение об исправлении, значит конфигурация поставщика содержит некорректную информацию. В этом случае следует снять Вашу конфигурацию с поддержки и заново поставить путем объединения со свежим релизом конфигурации поставщика. В настоящее время все релизы выпускаемые 1С проходят проверку и выпускаются без данной проблемы.

3. Также с этой ситуацией пересекается следующая ситуация:

10007066 Запись данных, содержащих колонки типа ХранилищеЗначения
Проблема:
При использовании СУБД MS SQL SERVER при записи объекта базы данных, содержащего несколько колонок типа ХранилищеЗначения, данные для которых получены из файлов, может происходить ошибка
Ошибка СУБД:Microsoft OLE DB Provider for SQL Server: String data length mismatchHRESULT=80004005и аварийное завершение работы программы.
Дата публикации: 2008-11-13

Включив технологический журнал на время загрузки, можно определить таблицу, в которой содержатся такие хранилища. Найдите средствами MS SQL Server Query Analizer в этой таблице колонки типа image. Для каждой колонки типа image выполните запрос вида:

select top 10 DATALENGTH(_Fld4044)
from _InfoReg4038
order by DATALENGTH(_Fld4044) desc

 
Нюансы: обратите внимание, что «Стандартные проверки» платформой (chdbfl, в конфигураторе) упорно говорят, что с базой все ОК.

Суть проблемы: важно, что под это сообщение об ошибке могут подпадать разные причины, но у них есть общая часть для 1С — это не достаточно оперативной памяти. А еще точнее неэффектиное использование ресурсов памяти. Отсюда косвенные способы победить проблему: путем рестарта сервера (на некотрое время становиться больше доступной памяти) или перейти на 64-разрядный сервер приложений.

1С:Предприятие 8.2. Лицензия на сервер (x86-64)

По опыту проблема связана с хранением данных в реквизите хранилище значений либо наличием в таблице config двоичных данных БОЛЬШЕ 120 mb.

Обобщенные рекомендации, если рекомендации от 1С не помогли (проделать следующие действия в указанном порядке):
1. Выключить все фоновый задачи у всех баз

В 8.1.11 появился переключатель «запрет на фоновые задания» в
момент создания базы.

Готов пояснить, фоновые задания сами по себе не зло, но регламентные процедуры
с полнотекстовым поиском — вещь в себе — и память она может через какое время
съедать ресурсы rphost.exe, что на другие операции не останеться, и просто
базу блокировать
т.е. другими словами, после первого шага уже можно проверять — возможно проблема «уйдет».
2. Перезапустить сервер

Второй шаг является частным случаем для вашего случая и после него тоже
есть смысл проверять работоспособность. Однако поскольку существуют утечки памяти http://www.gilev.ru/1c/memleak, то через некоторое время после рестарта пролема может вернуться.
3) делаем бэкап средствами sql

Делать резервное копирование рекомендую при любых действиях, когда может потребоваться «возврат» к предыдущему состоянию данных

4) снимаем базу с поддержки, выгружаем cf

убиваем в менежмент консоли базе данных в таблице config запись более 120Мб, делаем «загрузить конфигурацию» (не объединение) убиваем в менежмент консоли базе данных в таблице config запись более 120Мб, делаем «загрузить конфигурацию» (не объединение)

вот пример работоспособности этого приема

http://partners.v8.1c.ru/forum/thread.jsp?id=543293

или

1. Открыть конфигратор;
2. Снял конфигурацию с поддержки, ПРИ ЭТОМ КОНФИГУРАЦИЮ НЕ СОХРАНЯЛ!
3. Далее Сохранить конфигурацию в файл (не сохраняя измененной конфигурации);
4. В SQL для требуемой базы выполнил следующую команду:
DELETE FROM dbo.Config WHERE DataSize > 125829120
5. Загрузить сохраненную конфигурацию обратно.

Взято с http://www.forum.mista.ru/topic.php?id=465608

можно попробывать и более радикальный шаг здесь:
удаляем (в менежмент консоли) в базе данных таблицу «config»

DROP TABLE [dbo].[Config]
5) делаем «загрузить конфигурацию» (не объединение) из cf

после этого проверяем, проблема уходит.

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Zarty

Дата регистрации: 11.07.2008
Сообщений: 5

День добрый всем. Помогите разобратся.<br>Выгружаем ddt архив с SQL servera. Выдает ошибку «Сеанс работы завершон администратором Microsoft OLE DB Provaider For SQL Server: Неопознаная ошибка HRESULT=80004005». Спасибо Всем.

pavlika

Дата регистрации: 25.12.2004
Сообщений: 528

Если перезагрузить — ошибка остается?

napor

Дата регистрации: 30.07.2007
Сообщений: 21

«Как полностью выглядить сообщение об ошибке (SQLSTATE=….; native=….)?»

Zarty

Дата регистрации: 11.07.2008
Сообщений: 5

«Эту проблему решает перевод кластера в многопроцессорный режим. Запустите консоль сервера 1Предприятия, выберите Ваш >кластер и установите галочку «много процессов». Затем создайте как минимум 2 процесса.<br>Ошибка происходит при дефрагментации памяти рабочим процессом. Подключение еще одного процесса спасает ситуацию временно, до замусуривания памяти на 2 процессе. <br>В 1С:Предприятие (8.1.11.67) появилось частичное решение этой проблемы — появилось возможность установить время принудительной остановки рабочих процессов. Останавливаемый процес перестает осуществлять новые соединения, а при их полном отсутствии создает свою нефрагментированную копию.<br>Но с моей стороны — это тоже заплатка. На сервере, где несколько баз и много пользователей это не всегда срабатывает, так как всегда останется бесменный пользователь, а принудительный разрыв соединения… Но сдесь еще нужны эксперименты. <br>Проблемы проявляются во оcновном на новых релизах бухгалтерии. Может дело в них? <br>Буду благодарен за любые Ваши мысли. Истина где-то рядом»<br><br>.спасибо всем разобрался нашол вот ету инфу в инете

Показывать по
10
20
40
сообщений

Понравилась статья? Поделить с друзьями:
  • Ошибка выгрузки смена не закрыта ingenico
  • Ошибка выгрузки реверса на терминале альфа банк
  • Ошибка выгрузки реверса aisino
  • Ошибка выгрузки на терминале при закрытии смены ingenico
  • Ошибка выгрузки на терминале aisino