Функция JetTerm

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

Функция JetTerm

Функция JetTerm инициирует завершение работы экземпляра, инициализированного JetInit.

JetTerm также можно использовать для уничтожения неинициализированного экземпляра, созданного JetCreateInstance.

    JET_ERR JET_API JetTerm(
      __in          JET_INSTANCE instance
    );

Параметры

Экземпляр

Указывает экземпляр, используемый для этого вызова.

Windows 2000: Этот параметр игнорируется и всегда должен иметь значение NULL.

Windows XP и более поздние выпуски: Этот параметр перегружен. Если подсистема работает в устаревшем режиме (режим совместимости Windows 2000), где поддерживается только один экземпляр, этот параметр может иметь значение NULL или содержать фактический экземпляр, возвращаемый JetInit. Если подсистема работает в режиме с несколькими экземплярами, этот параметр должен быть указателем на экземпляр, созданный с помощью JetCreateInstance.

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

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

Код возврата

Описание

JET_errSuccess

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

JET_errInvalidParameter

Один из предоставленных параметров содержал непредвиденное значение или сочетание нескольких параметров привело к непредвиденному результату. Эта ошибка будет возвращена JetTerm , если подсистема находится в режиме нескольких экземпляров и когда pinstance ссылается на недопустимый экземпляр.

Windows XP: Это возвращаемое значение появилось в Windows XP.

JET_errNotInitialized

Операция не может завершиться, так как экземпляр еще не инициализирован.

JET_errTermInProgress

Операция не может завершиться, так как экземпляр завершает работу.

JET_errRestoreInProgress

Невозможно выполнить операцию, так как в экземпляре выполняется операция восстановления.

JET_errBackupInProgress

Операция не может завершиться, так как в экземпляре выполняется операция резервного копирования.

JET_errTooManyActiveUsers

Невозможно завершить работу экземпляра, так как в настоящее время для указанного экземпляра имеются сеансы с активными транзакциями. Эта ошибка возникает только в том случае, если используется JET_bitTermComplete.

Если эта функция будет выполнена успешно, указанный экземпляр завершит работу. Дескриптор экземпляра также будет закрыт и станет недоступным для любого API, который принимает дескриптор экземпляра. Все другие объекты, связанные с экземпляром , например сеансы, также будут закрыты. Состояние файла контрольных точек, файлов журнала транзакций и файлов базы данных, присоединенных к экземпляру, будет изменено во время завершения работы.

Если эта функция завершается сбоем в результате ошибки использования, экземпляр остается в инициализированном состоянии и ничего не изменяется. В противном случае экземпляр по-прежнему будет завершен в случае успешного выполнения. Разница заключается в том, что экземпляру потребуется выполнить аварийное восстановление при следующей инициализации. Подсистема попытается очистить как можно больше данных, чтобы свести к минимуму объем необходимого восстановления. По сути, такой сбой JetTerm ничем не отличается от сбоя процесса.

Комментарии

Если главный процесс экземпляра по какой-либо причине завершает работу до успешного вызова JetTerm для этого экземпляра, экземпляр считается аварийным. Аварийное восстановление произойдет при следующей попытке инициализации этого экземпляра.

Требования

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

Клиент

Требуется Windows Vista, Windows XP или Windows 2000 Профессиональная.

Сервер

Требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server.

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

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

Библиотека

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

DLL

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

См. также:

Файлы расширяемого ядра хранилища
JetCreateInstance
JET_ERR
JET_GRBIT
JetInit
JET_INSTANCE
JetTerm2