16.03.2023, 11:36 | #1 |
Участник
|
Расчет сводника
Добрый день.
Периодически (не каждый день) расчет сводника прерывается с ошибкой "Невозможно отредактировать запись в Чистые потребности (ReqTrans). Возник конфликт обновления из-за того, что другой пользовательский процесс выполняет удаление записи или изменение одного или нескольких полей в записи.", ну далее "Покрытие номенклатуры частично обновлено.", а у помощников соответственно "Главный процесс помечен как процесс, в котором произошел сбой". АХ2009. Считаем с помощниками, кол-во пробовали менять, чаще используем 4-6 штук. В методе ReqTrans.update() сделали стандартную конструкцию оптимист.модели, чтобы хоть что-то понять, а также поймать ошибку и вывести номенклатуру на которой крашится - не помогло, номенклатуры разные. X++: catch (Exception::Deadlock) { retry; } catch (Exception::UpdateConflict) { if (appl.ttsLevel() == 0) { if (xSession::currentRetryCount() < #RetryNum) { retry; } } else { warning(strfmt("Ошибка при обновлении ном-ры %1", this.ItemId)); throw Exception::UpdateConflict; } Стек расчета стандартный X++: (S)\Data Dictionary\Tables\ReqTrans\Methods\update,57, (S)\Data Dictionary\Tables\ReqTrans\Methods\deleteExplosionCoverageTrans,19, (S)\Data Dictionary\Tables\ReqTrans\Methods\deleteExplosionCoverage,53, (S)\Classes\ReqCalc\deleteItemRequirement,69, (S)\Classes\ReqCalcScheduleItemTable\insertDataRegeneration,88, (S)\Classes\ReqCalcScheduleItemTable\insertData,23, (S)\Classes\ReqCalc\updateDat,10, (S)\Classes\ReqCalc\run,15, (S)\Classes\ReqCalcScheduleItemTable\run,52, (S)\Classes\ReqProcessExternThread\initAndRunReqCalc,15, (S)\Classes\ReqProcessExternThread\run,27, (S)\Classes\BatchRun\runJobStatic,63 |
|