Добрый день.
Есть код
Если операцию, производимую в цикле, выполнят ьвне транзакции, то через какое-то время (непрогнозируемое) сервер отцепляет сеанс. Количество памяти за сеанс не выбрано, количество памяти рпхоста тоже, счетчики не подключены, все вроде в норме.
Если же операцию обрамить транзакцией, то код выполняется успешно. С теми же самыми настройками кластера, по тем же самым данным, в той же самой базе.
Вопрос: что происходит с памятью (и с памятью ли) без транзакции, а что фиксация транзакции заставляет сервер сделать с памятью или каким-то счетчиком?
PS Таблица или выборка - не вопрос данной темы.
Есть код
Таблица = Запрос.Выполнить().Выгрузить();//Тут запрос для получения обрабатываемых данных, строк от 100 000
Для каждого Строка из Таблица Цикл
НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый);
ПровестиДокументПоРегиструВзаиморасчетовПоСчетам(Строка.Ссылка);//Обработка строки данных. Допустим, запись регистра
ЗафиксироватьТранзакцию();
КонецЦикла;
ПоказатьЕсли операцию, производимую в цикле, выполнят ьвне транзакции, то через какое-то время (непрогнозируемое) сервер отцепляет сеанс. Количество памяти за сеанс не выбрано, количество памяти рпхоста тоже, счетчики не подключены, все вроде в норме.
Если же операцию обрамить транзакцией, то код выполняется успешно. С теми же самыми настройками кластера, по тем же самым данным, в той же самой базе.
Вопрос: что происходит с памятью (и с памятью ли) без транзакции, а что фиксация транзакции заставляет сервер сделать с памятью или каким-то счетчиком?
PS Таблица или выборка - не вопрос данной темы.
По теме из базы знаний
- Курс "Подготовка к 1С:Эксперту по технологическим вопросам. Основной курс" (в формате видеокурса или онлайн-курса). С 26 по 30 мая 2025 г.
- Держи данные в тепле, транзакции в холоде, а VACUUM в голоде
- Описание почти всех событий технологического журнала
- Язык мой – враг мой
- Новое в 14-й и 15-й версиях Postgres
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5) За прекращение выполнения не внутри транзакции в вашем случае отвечает параметр "Безопасный расход памяти за один вызов". Одним вызовом считается последовательность действий любой длительности, которая передана с клиента на сервер и не возвращена на клиент. Для обращений к серверу, у которых функция ТранзакцияАктивна() возвращает Истина, параметр безопасного расхода игнорируется. Высвобождение памяти сервером происходит только после возврата вызова на клиент.
Варианты решений.
1. Получить на клиент общий план выполнения, затем выполнять обработку данных порционно, передавая с клиента на сервер ту часть задачи, которую необходимо обработать
2. Создать регистр сведений либо последовательность, в которой будет отражаться состояние проведения цепочек документов (лучше РС), после чего выполнять проведение документов итеративно без передачи плана обработки на клиент, опираясь на данные регистра / последовательности
3. Вернуть параметр "Безопасный расход памяти за один вызов" в дефолтное значение (плохой вариант)
Варианты решений.
1. Получить на клиент общий план выполнения, затем выполнять обработку данных порционно, передавая с клиента на сервер ту часть задачи, которую необходимо обработать
2. Создать регистр сведений либо последовательность, в которой будет отражаться состояние проведения цепочек документов (лучше РС), после чего выполнять проведение документов итеративно без передачи плана обработки на клиент, опираясь на данные регистра / последовательности
3. Вернуть параметр "Безопасный расход памяти за один вызов" в дефолтное значение (плохой вариант)
(4)
'src\VResourceInfoBaseImpl.cpp(1176):580392e6-ba49-4280-ac67-fcd6f2180121: Неспецифицированная ошибка работы с ресурсомОшибка при выполнении запроса POST к ресурсу /e1cib/logForm:e0417abc-63b4-461b-b1b6-01d2d2b0cca5: На сервере 1С:Предприятия произошла неисправимая ошибка. Приложение будет закрыто''src\VResourceInfoBaseImpl.cpp(1176):580392e6-ba49-4280-ac67-fcd6f2180121: Неспецифицированная ошибка работы с ресурсомОшибка при выполнении запроса POST к ресурсу /e1cib/logForm:e0417abc-63b4-461b-b1b6-01d2d2b0cca5: На сервере 1С:Предприятия произошла неисправимая ошибка. Приложение будет закрыто'
03:27.124021-0,EXCP,2,process=rphost,p:processName=t2019,OSThread=13236,t:clientID=66,t:applicationName=1CV8C,t:computerName=1C1,t:connectID=54042,SessionID=1234,Usr=ГолевВМ,AppID=1CV8C,Exception=580392e6-ba49-4280-ac67-fcd6f2180121,Descr='src\VResourceInfoBaseImpl.cpp(1176):580392e6-ba49-4280-ac67-fcd6f2180121: Неспецифицированная ошибка работы с ресурсомОшибка при выполнении запроса POST к ресурсу /e1cib/logForm:e0417abc-63b4-461b-b1b6-01d2d2b0cca5: На сервере 1С:Предприятия произошла неисправимая ошибка. Приложение будет закрыто'
'src\VResourceInfoBaseImpl.cpp(1176):580392e6-ba49-4280-ac67-fcd6f2180121: Неспецифицированная ошибка работы с ресурсомОшибка при выполнении запроса POST к ресурсу /e1cib/logForm:e0417abc-63b4-461b-b1b6-01d2d2b0cca5: На сервере 1С:Предприятия произошла неисправимая ошибка. Приложение будет закрыто''src\VResourceInfoBaseImpl.cpp(1176):580392e6-ba49-4280-ac67-fcd6f2180121: Неспецифицированная ошибка работы с ресурсомОшибка при выполнении запроса POST к ресурсу /e1cib/logForm:e0417abc-63b4-461b-b1b6-01d2d2b0cca5: На сервере 1С:Предприятия произошла неисправимая ошибка. Приложение будет закрыто'
03:27.124021-0,EXCP,2,process=rphost,p:processName=t2019,OSThread=13236,t:clientID=66,t:applicationName=1CV8C,t:computerName=1C1,t:connectID=54042,SessionID=1234,Usr=ГолевВМ,AppID=1CV8C,Exception=580392e6-ba49-4280-ac67-fcd6f2180121,Descr='src\VResourceInfoBaseImpl.cpp(1176):580392e6-ba49-4280-ac67-fcd6f2180121: Неспецифицированная ошибка работы с ресурсомОшибка при выполнении запроса POST к ресурсу /e1cib/logForm:e0417abc-63b4-461b-b1b6-01d2d2b0cca5: На сервере 1С:Предприятия произошла неисправимая ошибка. Приложение будет закрыто'
(13)
Не выполняли. База свежая с января. Ошибка возникала и в самом начале на абсолютно других данных (регистра, который обрабатывали в этот раз еще даже не существовало)
Почему в памяти - на копии ошибка не воспроизводится ввиду отсутствия пользователей. Подумаем над ТиИ.
Не выполняли. База свежая с января. Ошибка возникала и в самом начале на абсолютно других данных (регистра, который обрабатывали в этот раз еще даже не существовало)
Почему в памяти - на копии ошибка не воспроизводится ввиду отсутствия пользователей. Подумаем над ТиИ.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот