JetBeginSession-Funktion

Gilt für: Windows | Windows Server

JetBeginSession-Funktion

Die JetBeginSession-Funktion startet eine Sitzung, initialisiert und gibt ein ESE-Sitzungshandle (JET_SESID) zurück. Sitzungen steuern den gesamten Zugriff auf die Datenbank und werden verwendet, um den Umfang von Transaktionen zu steuern. Die Sitzung kann verwendet werden, um Transaktionen zu starten, zu commiten oder abzubrechen. Die Sitzung wird auch zum Anfügen, Erstellen oder Öffnen einer Datenbank verwendet. Die Sitzung wird als Kontext für alle DDL- und DML-Vorgänge verwendet. Um die Parallelität und den parallelen Zugriff auf die Datenbank zu erhöhen, können mehrere Sitzungen gestartet werden.

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

Parameter

instance

Die Datenbank instance, die für diesen Aufruf verwendet werden soll.

psesid

Zeiger auf die Variable, die das Sitzungshandle bei erfolgreicher Rückgabe initialisiert.

szUserName

Dieser Parameter ist reserviert.

szPassword

Dieser Parameter ist reserviert.

Rückgabewert

Diese Funktion ermöglicht die Rückgabe aller JET_ERRs, die in dieser API definiert sind. Weitere Informationen zu Jet-Fehlern finden Sie unter Erweiterbare Speichermodulfehler und Fehlerbehandlungsparameter.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errClientRequestToStopJetService

Es ist nicht möglich, den Vorgang abzuschließen, da alle Aktivitäten auf dem instance, die der Sitzung zugeordnet sind, aufgrund eines Aufrufs von JetStopService beendet wurden.

JET_errInstanceUnavailable

Es ist nicht möglich, den Vorgang abzuschließen, da beim instance, der der Sitzung zugeordnet ist, ein schwerwiegender Fehler aufgetreten ist, der erfordert, dass der Zugriff auf alle Daten widerrufen wird, um die Integrität dieser Daten zu schützen.

Dieser Fehler wird nur von Windows XP und höheren Versionen zurückgegeben.

JET_errInvalidParameter

Einer der bereitgestellten Parameter enthielt einen unerwarteten Wert oder einen Wert, der in Kombination mit dem Wert eines anderen Parameters nicht sinnvoll war.

JET_errNotInitialized

Es ist nicht möglich, den Vorgang abzuschließen, da die der Sitzung zugeordnete instance noch nicht initialisiert wurde.

JET_errOutOfMemory

Der Vorgang ist fehlgeschlagen, weil arbeitsspeicher nicht zugewiesen werden konnte.

JET_errOutOfSessions

Die Anzahl der Sitzungen, die die Engine dem Start des Clients ermöglicht, ist begrenzt. Dieser Wert kann mithilfe von JetSetSystemParameter mit der konstanten JET_paramMaxSessions geändert werden. Die Standardanzahl von Sitzungen ist 16. Ausführliche Informationen zu JET_paramMaxSessions finden Sie unter Systemparameter .

JET_errRestoreInProgress

Es ist nicht möglich, den Vorgang abzuschließen, da auf dem der Sitzung zugeordneten instance ein Wiederherstellungsvorgang ausgeführt wird.

JET_errTermInProgress

Es ist nicht möglich, den Vorgang abzuschließen, da die der Sitzung zugeordnete instance heruntergefahren wird.

Bei Erfolg wird das Sitzungshandle initialisiert und kann für Datenbankvorgänge verwendet werden.

Bei einem Fehler sind keine Sitzungen verfügbar, oder eine neue Sitzung konnte nicht initialisiert werden.

Bemerkungen

Bei der Verwendung von Sitzungen über verschiedene Threads hinweg muss sorgfältig darauf geachtet werden. Eine Sitzung verfolgt, in welchem Thread sie während JetBeginTransaction, JetCommitTransaction oder JetRollback verwendet wurde, und löst einen Fehler aus, wenn sie für mehrere Threads mit einer geöffneten Transaktion verwendet wird. JetResetSessionContext, JetSetSessionContext kann dieses Verhalten ändern. Da die Sitzung immer noch ein serialisierter Kontext ist und mehrere Datenbankvorgänge nicht gleichzeitig in einer einzelnen Sitzung ausgeführt werden können, nur seriell. Sie können jedoch mehrere Sitzungen verwenden, um gleichzeitigen Datenbankzugriff zu erzielen. Sitzungen können innerhalb einer Transaktion threadsübergreifend verwendet werden, indem Sie die Sitzungskontexte festlegen und zurücksetzen.

Das Sitzungshandle sollte mit JetEndSession geschlossen werden.

Anforderungen

Anforderung Wert

Client

Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.

Server

Erfordert Windows Server 2008, Windows Server 2003 oder Windows 2000 Server.

Kopfzeile

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Unicode

Implementiert als JetBeginSessionW (Unicode) und JetBeginSessionA (ANSI).

Weitere Informationen

JET_ERR
JET_INSTANCE
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetDupSession
JetEndSession
JetResetSessionContext
JetRollback
JetSetSessionContext
JetStopService
Systemparameter