Что делать с JET_errVersionStoreOutOfMemory при обновлении Jet

#database #winapi #extensible-storage-engine

#База данных #winapi #расширяемый механизм хранения

Вопрос:

Когда я вызываю JetUpdate (), я иногда получаю либо JET_errVersionStoreOutOfMemory, либо JET_errVersionStoreOutOfMemoryAndCleanupTimedOut.

На компьютере достаточно свободной оперативной памяти и дискового пространства, что означает эта ошибка — и, что более важно, что мне с этим делать?

Я пробовал такие действия, как Sleep (), перед повторной попыткой транзакции, иногда это, кажется, работает, но иногда это не так — заставляя меня думать, что я на неверном пути?

Ответ №1:

Вам либо нужно увеличить размер хранилища версий (задайте JET_paramMaxVerPages с помощью параметра JetSetSystemParameter), либо выполнить меньше работы внутри одной транзакции.

В качестве примера управления размером транзакции смотрите раздел «Как мне ускорить мою транзакцию?». запись в документации:http://managedesent.codeplex.com/wikipage?title=HowDoI

Комментарии:

1. Обновленная ссылка на документ, содержащий «Как мне ускорить мою транзакцию», является github.com/microsoft/ManagedEsent/blob/master/Documentation/… Я не могу отредактировать ответ, потому что получаю сообщение об ошибке «предлагаемая очередь редактирования заполнена».