Функция JetCreateInstance

Применимо к: Windows | Windows Сервером

Функция JetCreateInstance

Функция жеткреатеинстанце выделяет новый экземпляр ядра СУБД для использования в одном процессе.

Windows xp: жеткреатеинстанце появился в Windows XP.

    JET_ERR JET_API JetCreateInstance(
      __out         JET_INSTANCE* pinstance,
      __in_opt      const tchar* szInstanceName
    );

Параметры

пинстанце

Выходной буфер, который получает только что созданный экземпляр.

сзинстанценаме

Уникальный идентификатор строки для создаваемого экземпляра. Эта строка должна быть уникальной в пределах данного процесса, в котором размещается ядро СУБД.

Примечание . Значение NULL обрабатывается как допустимый строковый идентификатор для экземпляра. Только один экземпляр может иметь строковый идентификатор NULL.

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

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

Код возврата

Описание

JET_errSuccess

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

JET_errInstanceNameInUse

Указанное имя экземпляра уже используется для этого процесса.

JET_errInvalidParameter

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

JET_errRunningInOneInstanceMode

операция завершилась ошибкой, так как ее нельзя использовать, если ядро субд работает в режиме одиночного экземпляра (режим совместимости Windows 2000).

JET_errTooManyInstances

Не удалось создать новый экземпляр, так как достигнуто максимальное число экземпляров. Максимальное число поддерживаемых экземпляров настраивается с помощью жетсетсистемпараметер с помощью JET_paramMaxInstances.

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

В случае сбоя будет возвращена ошибка, представляющая причину сбоя, и ни один экземпляр не будет выделен.

Комментарии

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

Экземпляр уничтожается вызовом функции жеттерм , даже если этот экземпляр никогда не был инициализирован с помощью жетинит. Максимальное число экземпляров, которые могут быть созданы за один раз, управляется JET_paramMaxInstances, которые можно настроить с помощью вызова жетсетсистемпараметер. Экземпляр — это единица восстановления для ядра СУБД. Он управляет жизненным циклом всех файлов, используемых для защиты целостности данных в наборе файлов базы данных. Эти файлы включают файл контрольных точек и файлы журнала транзакций.

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

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

Типичная последовательность запуска для процесса, потенциально выполняющего несколько экземпляров Jet, будет выглядеть следующим образом:

  • Вызов JetCreateInstance2 , который выделит и назначит имя экземпляра.

  • Несколько вызовов жетсетсистемпараметер для этого экземпляра, чтобы задать различные системные параметры. Обратите внимание, что некоторые системные параметры должны быть уникальными для каждого экземпляра (например, JET_paramSystemPath или JET_paramLogFilePath), поэтому, скорее всего, потребуется установить каждый из них.

  • Запустите экземпляр с помощью жетинит или JetInit2. Чтобы завершить и (или) освободить экземпляр, необходимо использовать жеттерм, JetTerm2 .

Если это первый экземпляр для запуска, существует ряд дополнительных шагов, которые будут выполнены во время этого вызова для выполнения базовой инициализации и настройки системы. Некоторые из этих шагов могут привести к возникновению конкретных ошибок, начинающихся с JET_errOutOfMemory, а также других (см. ошибки выше).

Требования

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

Клиент

требуется Windows Vista или Windows XP.

Server

требуется Windows server 2008 или Windows server 2003.

Header

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

Библиотека

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

DLL

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

Юникод

Реализуется как жеткреатеинстанцев (Юникод) и жеткреатеинстанцеа (ANSI).

См. также:

расширяемые файлы служба хранилища Engine
JET_ERR
JET_INSTANCE
JetCreateInstance2
жетенаблемултиинстанце
жетжетинстанцеинфо
жетинит
JetInit2
жетосснапшотфризе
жетсетсистемпараметер
жеттерм
JetTerm2