Condividi tramite


Funzione JetBeginSession

Si applica a: Windows | Windows Server

Funzione JetBeginSession

La funzione JetBeginSession avvia una sessione e inizializza e restituisce un handle di sessione ESE (JET_SESID). Le sessioni controllano tutti l'accesso al database e vengono usate per controllare l'ambito delle transazioni. La sessione può essere usata per iniziare, eseguire il commit o interrompere le transazioni. La sessione viene usata anche per collegare, creare o aprire un database. La sessione viene usata come contesto per tutte le operazioni DDL e DML. Per aumentare la concorrenza e l'accesso parallelo al database, è possibile iniziare più sessioni.

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

Parametri

Istanza

Istanza del database da usare per questa chiamata.

psesid

Puntatore alla variabile che la sessione gestisce inizializza in caso di esito positivo.

szUserName

Questo parametro è riservato.

szPassword

Questo parametro è riservato.

Valore restituito

Questa funzione consente la restituzione di qualsiasi JET_ERRdefinita in questa API. Per altre informazioni sugli errori di Jet, vedere Errori del motore di archiviazione estendibili e parametri di gestione degli errori.

Codice restituito

Descrizione

JET_errSuccess

Operazione riuscita.

JET_errClientRequestToStopJetService

Non è possibile completare l'operazione perché tutte le attività nell'istanza associata alla sessione non sono state interrotte in seguito a una chiamata a JetStopService.

JET_errInstanceUnavailable

Non è possibile completare l'operazione perché l'istanza associata alla sessione ha rilevato un errore irreversibile che richiede che l'accesso a tutti i dati venga revocato per proteggere l'integrità dei dati.

Questo errore verrà restituito solo da Windows XP e versioni successive.

JET_errInvalidParameter

Uno dei parametri forniti contiene un valore imprevisto o contiene un valore che non ha senso quando si combina con il valore di un altro parametro.

JET_errNotInitialized

Non è possibile completare l'operazione perché l'istanza associata alla sessione non è ancora stata inizializzata.

JET_errOutOfMemory

L'operazione non è riuscita perché la memoria non è stata allocata.

JET_errOutOfSessions

Il numero di sessioni che il motore consentirà all'avvio del client è limitato. Questo valore può essere modificato usando JetSetSystemParameter con la costante JET_paramMaxSessions. Il numero predefinito di sessioni è 16. Per informazioni dettagliate sulle JET_paramMaxSessions, vedere Parametri di sistema .

JET_errRestoreInProgress

Non è possibile completare l'operazione perché un'operazione di ripristino è in corso nell'istanza associata alla sessione.

JET_errTermInProgress

Non è possibile completare l'operazione perché l'istanza associata alla sessione viene arrestata.

In caso di esito positivo, l'handle di sessione viene inizializzato e può essere usato per le operazioni del database.

In caso di errore, non sono disponibili sessioni o non è stato possibile inizializzare una nuova sessione.

Commenti

Attenzione attenta deve essere usata quando si usano sessioni tra thread diversi. Una sessione tiene traccia del thread usato durante JetBeginTransaction, JetCommitTransaction o JetRollback e genererà un errore se usato in più thread con una transazione aperta. JetResetSessionContext, JetSetSessionContext può modificare questo comportamento. Poiché la sessione è ancora un contesto serializzato e non è possibile eseguire più operazioni di database in una singola sessione simultaneamente, solo serialmente. È tuttavia possibile usare più sessioni per ottenere l'accesso simultaneo al database. Le sessioni possono essere usate all'interno di una transazione tra thread impostando e reimpostando i contesti della sessione.

L'handle di sessione deve essere chiuso con JetEndSession.

Requisiti

Requisito Valore

Client

Richiede Windows Vista, Windows XP o Windows 2000 Professional.

Server

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

Intestazione

Dichiarato in Esent.h.

Libreria

Usare ESENT.lib.

DLL

Richiede ESENT.dll.

Unicode

Implementato come JetBeginSessionW (Unicode) e JetBeginSessionA (ANSI).

Vedere anche

JET_ERR
JET_INSTANCE
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetDupSession
JetEndSession
JetResetSessionContext
JetRollback
JetSetSessionContext
JetStopService
Parametri di sistema