Что означает код ошибки Windows 6724 (ERROR_TRANSACTION_RECORD_TOO_LONG)?

 
Предыдущий Следующий
ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED

ERROR_TRANSACTION_RECORD_TOO_LONG

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

Откуда берётся размер

KTM позволяет диспетчеру ресурсов сохранять непрозрачные сведения восстановления от имени зачисления. После сбоя диспетчер ресурсов может получить эти сведения и восстановить своё состояние. Большие блоки восстановления и большое число участников увеличивают запись, которую KTM должен сохранить в журнале.

Что измерить

  • Подсчитайте зачисления диспетчеров ресурсов для транзакции.
  • Измерьте размеры сведений восстановления до вызова API KTM, записывающего их.
  • Поищите архитектуру приложения, которая помещает неограниченные бизнес-данные в сведения восстановления вместо компактной ссылки для восстановления.
  • Разделяйте независимую работу на отдельные транзакции только тогда, когда это допускают требования атомарности.

См. SetEnlistmentRecoveryInformation, функции восстановления KTMи Определение WinError.


Нужно найти другой код? Найти другой код состояния или ошибки.