JetInit 함수

적용 대상: Windows | Windows 서버인

JetInit 함수

JetInit 함수는 데이터베이스 엔진을 데이터베이스 파일의 응용 프로그램 사용을 지원할 수 있는 상태로 전환 합니다. JetSetSystemParameter를 사용 하 여 초기화에 대해 엔진이 이미 올바르게 구성 되어 있어야 합니다. 데이터베이스 충돌 복구는 초기화 프로세스의 일부로 자동으로 수행 됩니다.

JET_ERR JET_API JetInit(
  __in_out_opt  JET_INSTANCE* pinstance
);

매개 변수

pinstance

이 호출에 사용할 인스턴스입니다.

Windows 2000의 경우이 매개 변수는 무시 되며 항상 NULL 이어야 합니다.

Windows XP 이상 버전의 경우이 매개 변수를 사용 하는 것은 엔진의 운영 모드에 따라 달라 집니다. 엔진이 하나의 인스턴스만 지원 되는 레거시 모드 (Windows 2000 호환성 모드)에서 작동 하는 경우이 매개 변수는 NULL 이거나 초기화의 부작용으로 생성 되는 전역 인스턴스 핸들을 반환 하는 유효한 출력 버퍼로 설정 될 수 있습니다. 이 출력 버퍼는 NULL 또는 JET_instanceNil로 설정 되어야 합니다. 그런 다음 인스턴스를 사용 하는 다른 함수에이 인스턴스 핸들을 전달할 수 있습니다. 엔진이 다중 인스턴스 모드에서 작동 하는 경우이 매개 변수는 초기화 되는 JetCreateInstance 함수 인스턴스에서 반환 된 인스턴스 핸들을 포함 하는 유효한 입력 버퍼로 설정 되어야 합니다.

설명

JetInit 에 대 한 호출을 사용 하 여 인스턴스를 초기화 해야 JetSetSystemParameter이외의 항목에서 인스턴스를 사용할 수 있습니다.

인스턴스가 JetInit 를 사용 하 여 초기화 되지 않은 경우에도 JetTerm 함수를 호출 하 여 인스턴스가 삭제 됩니다. 인스턴스는 데이터베이스 엔진에 대 한 복구 단위입니다. 데이터베이스 파일 집합의 데이터 무결성을 보호 하는 데 사용 되는 모든 파일의 수명 주기를 제어 합니다. 이러한 파일에는 검사점 파일과 트랜잭션 로그 파일이 포함 됩니다.

한 번에 만들 수 있는 최대 인스턴스 수는 JetSetSystemParameter에 대 한 호출로 구성할 수 있는 JET_paramMaxInstances에 의해 제어 됩니다. 데이터베이스 엔진이 처음으로 초기화 되 면 JetInit 는 해당 인스턴스를 지 원하는 초기 파일 집합을 만듭니다. 이러한 파일에는 라는 검사점 파일이 <JET_paramBaseName> 있습니다. CHK)-예약 된 트랜잭션 로그 파일 (RES1)의 집합입니다. LOG and RES2. LOG), 초기 트랜잭션 로그 파일 ( <JET_paramBaseName> LOG) 및 임시 데이터베이스 파일 ( JET_paramTempPath에 따라 이름이 지정 됩니다. JET_paramRecovery 을 "Off"로 설정 하면 검사점 파일과 로그 파일이 생성 되지 않습니다. JET_paramMaxTemporaryTables 를 0으로 설정 하면 임시 데이터베이스 파일이 생성 되지 않습니다. 이러한 파일은 인스턴스의 디스크 공간을 나타내며 신중 하 게 관리 해야 합니다. 이러한 파일이 개별적으로 손상 되거나 서로 관련 하 여 손상 된 경우 해당 인스턴스와 연결 된 데이터베이스에 저장 된 데이터가 손실 될 수 있습니다.

데이터베이스 엔진이 기존 트랜잭션 로그 파일 집합을 사용 하 여 초기화 되는 경우 해당 파일을 검사 하 여 인스턴스의 이전 incarnation 작동 중단에서 발생 한 것인지 확인 합니다. 충돌이 검색 되 면 크래시 복구가 자동으로 수행 됩니다. 이 프로세스는 엔진의 이전 incarnation 동안 인스턴스에 연결 된 데이터베이스를 다시 생성 하 고 변경 내용을 데이터베이스 파일에 다시 저장 합니다. 그 결과 트랜잭션이 일관 된 데이터베이스가 됩니다. 데이터베이스에 대해 재생할 트랜잭션 로그 파일의 수가 많은 경우이 프로세스에 상당한 시간이 걸릴 수 있습니다.

JetInit 는 크래시 복구를 수행 하기 때문에 오류가 발생 하는 경우 거의 모든 데이터베이스 엔진 오류가 반환 될 수 있습니다. 실제로 배포에 표시 되는 대부분의 오류는 데이터 손상 및 파일 든 같은 두 가지 범주로 나뉩니다. 데이터 손상은 종종 다음과 같은 오류 또는 유사한 오류에서 발생 합니다.

  • JET_errReadVerifyFailure

  • JET_errLogFileCorrupt

  • JET_errCheckpointCorrupt

이러한 오류는 거의 항상 하드웨어 문제로 인해 발생 하므로 피할 수 없습니다. 든 파일은 다음 오류 또는 유사한 오류에서 가장 자주 발생 합니다.

  • JET_errMissingLogFile

  • JET_errAttachedDatabaseMismatch

  • JET_errDatabaseSharingViolation

  • JET_errInvalidLogSequence

모든 데이터베이스가 존재 하지 않는 (정상적인 상황에서 오류 JET_errAttachedDatabaseMismatch 반환 됨) 로그 집합에서 복구가 실행 되는 경우 JET_ 데이터베이스 누락에도 불구 하 고 클라이언트는 사용 가능한 데이터베이스에 대 한 복구를 계속 하는 데 사용할 수 있습니다. 이러한 오류는 응용 프로그램에 의해 안전할 됩니다. 응용 프로그램은 사용자 또는 다른 응용 프로그램과 같은 다른 방식으로 조작 하지 못하도록 이러한 파일의 리포지토리를 보호 해야 합니다. 응용 프로그램에서 인스턴스를 완전히 삭제 하려면 인스턴스와 연결 된 모든 파일을 삭제 해야 합니다. 여기에는 검사점 파일, 트랜잭션 로그 파일 및 인스턴스에 연결 된 모든 데이터베이스 파일이 포함 됩니다.

JetInit 함수는 Windows 2000 이상 버전 사이에서 인스턴스에 연결 된 데이터베이스 파일에 대해 다르게 동작 합니다.

Windows 2000: Windows 2000에서 해당 인스턴스의 이전 incarnation 동안 인스턴스에 연결 된 모든 데이터베이스는 JetInit 성공적으로 완료 된 후 인스턴스에 연결 된 상태로 유지 됩니다. 나중에 데이터베이스에 액세스할 수 있도록 JetInitJetAttachDatabase 를 호출할 필요가 없습니다. JetAttachDatabase 함수가 JetInit 함수 다음에 호출 되 면 JET_wrnDatabaseAttached 경고가 반환 됩니다. 이 경고는 데이터베이스 첨부 파일이 유지 되 고 무시할 수 있음을 나타냅니다.

Windows XP: Windows XP 이상 릴리스에서는 모든 데이터베이스가 자동으로 인스턴스에서 JetInit 에 의해 자동으로 분리 됩니다. 즉,이 경우 JetInit 후에는 항상 JetAttachDatabase 를 호출 해야 합니다.

Windows 2000에서 실행 되도록 작성 된 응용 프로그램 및 이후 릴리스에서는 항상 JetInit 이후 JetAttachDatabase 를 호출 해야 합니다. Windows 2000에서 응용 프로그램을 실행 하는 경우에는 경우에 따라 JET_wrnDatabaseAttached를 확인 해야 합니다. 자세한 내용은 JetAttachDatabase 를 참조 하세요.

요구 사항

| | |

클라이언트

|

Windows Vista, Windows XP 또는 Windows 2000 Professional 필요 합니다.

| |

서버

|

Windows server 2008, Windows server 2003 또는 Windows 2000 서버가 필요 합니다.

| |

머리글

|

Esent에 선언 됩니다.

| |

라이브러리

|

ESENT를 사용 합니다.

| |

GDIPLUS.DLL

|

ESENT.dll 필요 합니다.

|

참고 항목

확장 가능한 Storage 엔진 파일
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_paramMaxTemporaryTables
JET_paramRecovery
JetAttachDatabase
JetCreateInstance
JetInit3
JetSetSystemParameter