Функция JetTerm

Область применения: Windows | сервер Windows

Функция JetTerm

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

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

    JET_ERR JET_API JetTerm(
      __in          JET_INSTANCE 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 не отличается от сбоя процесса.

Remarks

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

Требования

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

Клиент

Требуется Windows Vista, Windows XP или Windows 2000 Professional.

Server

Требуется 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