Функция JetStopServiceInstance2

Применимо к: Windows | Windows Server

Функция JetStopServiceInstance2 подготавливает экземпляр до приостановки, а экземпляр — после возобновления. Приостановка и возобновление — это состояния выполнения модели жизненного цикла приложений Магазина Windows.

Функция JetStopServiceInstance2 появилась в Windows 8.

JET_ERR JET_API JetStopServiceInstance2(
  _In_          JET_INSTANCE       instance
  _In_          const JET_GRBIT    grbit
);

Параметры

Экземпляр

Целевой экземпляр. Тип данных JET_INSTANCE — это дескриптор экземпляра базы данных, используемый для вызова API JET. Этот дескриптор получается при создании экземпляра базы данных путем вызова функций JetCreateInstance, JetCreateInstance2, JetInit или JetInit2 .

grbit

Группа битов, задающая одно или несколько значений, перечисленных и определенных в следующей таблице.

Значение

Описание

JET_bitStopServiceAll

Останавливает все службы расширяемого обработчика хранилища (ESE) для указанного экземпляра.

JET_bitStopServiceBackgroundUserTasks

Останавливает перезапускаемые задачи фонового обслуживания, заданные клиентом (например, дефрагментация дерева B+).

JET_bitStopServiceQuiesceCaches

Замораживает все кэши грязное на диск. Это значение является асинхронным и может быть отменено.

JET_bitStopServiceResume

Возобновляет ранее выданные операции StopService; то есть он перезапускает службу. Это значение можно объединить с параметром grbits для возобновления работы определенных служб или с JET_bitStopServiceAll для возобновления всех ранее остановленных служб. Этот бит можно использовать только для возобновления stopServiceBackgroundUserTasks и JET_bitStopServiceQuiesceCaches. Если вы ранее вызывали JET_bitStopServiceAll, попытка использовать JET_bitStopServiceResume завершится ошибкой. Если второй шаг возобновления не вызывается, производительность приложения снизится. В этом случае контрольная точка остается нулевой.

Возвращаемое значение

Эта функция возвращает JET_ERR тип данных с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.

Код возврата

Описание

JET_errSuccess

Операция выполнена успешно.

Комментарии

Эта функция позволяет приложению JET переместить кэш базы данных в чистое или почти чистое состояние (при простое ввода-вывода операционной системы), чтобы в случае завершения работы приложения восстановление было бы быстрым. Этот подход предпочтительнее, чем завершение jet путем вызова функций JetTerm или JetDetachDatabase , чтобы в более распространенном сценарии приложение просто отключалось, а позже приложение имеет весь кэш и готово к работе как можно скорее.

Если эта функция выполняется успешно, она подготавливает кэш базы данных к неминуемой приостановке. Очередь этой функции работает в фоновом рабочем потоке и немедленно возвращается вызывающей функции. Функция должна вызываться на основе PLM VisibilityNotice, а не на вызове из обработчика событий приостановки приложения, чтобы гарантировать, что JET имеет время для очистки буферов грязное до приостановки или завершения процесса PLM. На внутреннем сервере JET активирует немедленную отправку обслуживания контрольных точек после изменения конфигурации (либо обновление контрольной точки, либо новый бит кэширования замораживает). Дополнительные сведения о событиях VisibilityNotice см. в разделе Класс VisibilityChangedEventArgs.

Эту функцию необходимо вызывать дважды. Он вызывается после того, как приложение получит уведомление о приостановке от операционной системы, но до приостановки приложения. Затем он вызывается снова после возобновления работы приложения операционной системой. Пример:

При вызове функции Приостановка: JET_ERR JET_API JetStopServiceInstance2( экземпляр, JET_bitStopServiceQuiesceCaches);

При возобновлении: JET_ERR JET_API JetStopServiceInstance2( экземпляр, JET_bitStopServiceQuiesceCaches| JET_bitStopServiceResume );

Требования

Требование Значение

Клиент

Требуется Windows 8.

Сервер

Требуется Windows Server 2012.

Верхняя часть

Объявлено в Esent.h.

Библиотека

Используйте ESENT.lib.

DLL

Требуется ESENT.dll.

См. также раздел

JET_ERR
JET_INSTANCE
JetCloseDatabase
JetCloseTable
JetDetachDatabase
JetEndSession
JetResetSessionContext
JetRollback
JetTerm
JetTerm2