다음을 통해 공유


JetBeginSession 함수

적용 대상: Windows | Windows Server

JetBeginSession 함수

JetBeginSession 함수는 세션을 시작하고 ESE 세션 핸들(JET_SESID)을 초기화하고 반환합니다. 세션은 데이터베이스에 대한 모든 액세스를 제어하며 트랜잭션의 scope 제어하는 데 사용됩니다. 세션을 사용하여 트랜잭션을 시작, 커밋 또는 중단할 수 있습니다. 세션은 데이터베이스를 연결, 만들기 또는 여는 데도 사용됩니다. 세션은 모든 DDL 및 DML 작업의 컨텍스트로 사용됩니다. 데이터베이스에 대한 동시성 및 병렬 액세스를 늘리기 위해 여러 세션을 시작합니다.

    JET_ERR JET_API JetBeginSession(
      __in          JET_INSTANCE instance,
      __out         JET_SESID* psesid,
      __in_opt      JET_PCSTR szUserName,
      __in_opt      JET_PCSTR szPassword
    );

매개 변수

instance

이 호출에 사용할 데이터베이스 instance.

psesid

성공적인 반환 시 세션 핸들이 초기화하는 변수에 대한 포인터입니다.

szUserName

이 매개 변수는 예약되어 있습니다.

szPassword

이 매개 변수는 예약되어 있습니다.

반환 값

이 함수를 사용하면 이 API에 정의된 모든 JET_ERR반환할 수 있습니다. Jet 오류에 대한 자세한 내용은 확장 가능한 스토리지 엔진 오류오류 처리 매개 변수를 참조하세요.

반환 코드

설명

JET_errSuccess

작업이 성공적으로 완료되었습니다.

JET_errClientRequestToStopJetService

JetStopService 호출로 인해 세션과 연결된 instance 모든 작업이 중단되었으므로 작업을 완료할 수 없습니다.

JET_errInstanceUnavailable

세션과 연결된 instance 해당 데이터의 무결성을 보호하기 위해 모든 데이터에 대한 액세스를 해지해야 하는 심각한 오류가 발생하여 작업을 완료할 수 없습니다.

이 오류는 Windows XP 이상 릴리스에서만 반환됩니다.

JET_errInvalidParameter

제공된 매개 변수 중 하나에 예기치 않은 값이 포함되어 있거나 다른 매개 변수의 값과 결합할 때 의미가 없는 값이 포함되어 있습니다.

JET_errNotInitialized

세션과 연결된 instance 아직 초기화되지 않았기 때문에 작업을 완료할 수 없습니다.

JET_errOutOfMemory

메모리를 할당할 수 없어 작업이 실패했습니다.

JET_errOutOfSessions

엔진에서 클라이언트를 시작할 수 있는 세션 수는 제한됩니다. 이 값은 JET_paramMaxSessions 상수와 함께 JetSetSystemParameter 를 사용하여 변경할 수 있습니다. 기본 세션 수는 16개입니다. JET_paramMaxSessions 대한 자세한 내용은 시스템 매개 변수 를 참조하세요.

JET_errRestoreInProgress

세션과 연결된 instance 복원 작업이 진행 중이므로 작업을 완료할 수 없습니다.

JET_errTermInProgress

세션과 연결된 instance 종료 중이므로 작업을 완료할 수 없습니다.

성공하면 세션 핸들이 초기화되고 데이터베이스 작업에 사용될 수 있습니다.

실패 시 사용 가능한 세션이 없거나 새 세션을 초기화할 수 없습니다.

설명

여러 스레드에서 세션을 사용할 때는 주의해야 합니다. 세션은 JetBeginTransaction, JetCommitTransaction 또는 JetRollback 중에 사용된 스레드를 추적하며, 열려 있는 트랜잭션이 있는 여러 스레드에서 사용되는 경우 오류를 throw합니다. JetResetSessionContext, JetSetSessionContext는 이 동작을 변경할 수 있습니다. 세션은 여전히 직렬화된 컨텍스트이므로 단일 세션에서 여러 데이터베이스 작업을 동시에 수행할 수 없으며 직렬로만 수행할 수 있습니다. 그러나 여러 세션을 사용하여 동시 데이터베이스 액세스를 달성할 수 있습니다. 세션 컨텍스트를 설정하고 다시 설정하여 스레드 간 트랜잭션 내에서 세션을 사용할 수 있습니다.

JetEndSession을 사용하여 세션 핸들을 닫아야 합니다.

요구 사항

요구 사항

클라이언트

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

서버

Windows Server 2008, Windows Server 2003 또는 Windows 2000 Server가 필요합니다.

머리글

Esent.h에 선언되었습니다.

라이브러리

ESENT.lib를 사용합니다.

DLL

ESENT.dll 필요합니다.

유니코드

JetBeginSessionW(유니코드) 및 JetBeginSessionA(ANSI)로 구현됩니다.

참고 항목

JET_ERR
JET_INSTANCE
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetDupSession
JetEndSession
JetResetSessionContext
JetRollback
JetSetSessionContext
JetStopService
시스템 매개 변수