Función JetBeginSession

Se aplica a: Windows | Windows Server

Función JetBeginSession

La función JetBeginSession inicia una sesión e inicializa y devuelve un identificador de sesión ESE (JET_SESID). Las sesiones controlan todo el acceso a la base de datos y se usan para controlar el ámbito de las transacciones. La sesión se puede usar para iniciar, confirmar o anular transacciones. La sesión también se usa para adjuntar, crear o abrir una base de datos. La sesión se usa como contexto para todas las operaciones DDL y DML. Para aumentar la simultaneidad y el acceso paralelo a la base de datos, se pueden iniciar varias sesiones.

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

Parámetros

instance

Instancia de base de datos que se va a usar para esta llamada.

psesid

Puntero a la variable que el controlador de sesión inicializa al devolverse correctamente.

szUserName

Este parámetro está reservado.

szPassword

Este parámetro está reservado.

Valor devuelto

Esta función permite el retorno de los JET_ERRque se definen en esta API. Para obtener más información sobre los errores de Jet, vea Extensible Storage Engine Errors and Error Handling Parameters.

Código devuelto

Descripción

JET_errSuccess

La operación se ha completado correctamente.

JET_errClientRequestToStopJetService

No es posible completar la operación porque toda la actividad de la instancia asociada a la sesión ha dejado de funcionar como resultado de una llamada a JetStopService.

JET_errInstanceUnavailable

No es posible completar la operación porque la instancia asociada a la sesión ha encontrado un error irrecuperable que requiere que se revoque el acceso a todos los datos para proteger la integridad de esos datos.

Este error solo lo devolverá Windows XP y versiones posteriores.

JET_errInvalidParameter

Uno de los parámetros proporcionados contenía un valor inesperado o contenía un valor que no tenía sentido cuando se combinaba con el valor de otro parámetro.

JET_errNotInitialized

No es posible completar la operación porque la instancia asociada a la sesión aún no se ha inicializado.

JET_errOutOfMemory

Error en la operación porque no se pudo asignar memoria.

JET_errOutOfSessions

El número de sesiones que el motor permitirá que el cliente se inicie es limitado. Este valor se puede cambiar mediante JetSetSystemParameter con la constante JET_paramMaxSessions. El número predeterminado de sesiones es 16. Consulte Parámetros del sistema para obtener más información sobre JET_paramMaxSessions.

JET_errRestoreInProgress

No es posible completar la operación porque una operación de restauración está en curso en la instancia asociada a la sesión.

JET_errTermInProgress

No es posible completar la operación porque la instancia asociada a la sesión se está cerrando.

Si se ejecuta correctamente, se inicializa el identificador de sesión y se puede usar para las operaciones de base de datos.

Si se produce un error, no hay ninguna sesión disponible o no se pudo inicializar una nueva sesión.

Comentarios

Debe usarse una atención cuidadosa al usar sesiones en diferentes subprocesos. Una sesión realiza un seguimiento del subproceso en el que se usó durante JetBeginTransaction, JetCommitTransaction o JetRollback, y producirá un error si se usa en varios subprocesos con una transacción abierta. JetResetSessionContext, JetSetSessionContext puede cambiar este comportamiento. Puesto que la sesión sigue siendo un contexto serializado y no se pueden realizar varias operaciones de base de datos simultáneamente en una sola sesión, solo en serie. Sin embargo, puede usar varias sesiones para lograr el acceso simultáneo a la base de datos. Las sesiones se pueden usar dentro de una transacción entre subprocesos estableciendo y restableciendo los contextos de sesión.

El identificador de sesión debe cerrarse con JetEndSession.

Requisitos

Requisito Value

Cliente

Requiere Windows Vista, Windows XP o Windows 2000 Professional.

Servidor

Requiere Windows Server 2008, Windows Server 2003 o Windows 2000 Server.

Encabezado

Declarado en Esent.h.

Library

Use ESENT.lib.

Archivo DLL

Requiere ESENT.dll.

Unicode

Se implementa como JetBeginSessionW (Unicode) y JetBeginSessionA (ANSI).

Consulte también

JET_ERR
JET_INSTANCE
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetDupSession
JetEndSession
JetResetSessionContext
JetRollback
JetSetSessionContext
JetStopService
Parámetros del sistema