JetBeginSession 関数
適用対象: Windows |Windows Server
JetBeginSession 関数
JetBeginSession 関数はセッションを開始し、ESE セッション ハンドル (JET_SESID) を初期化して返します。 セッションはデータベースへのすべてのアクセスを制御し、トランザクションのスコープを制御するために使用されます。 セッションを使用して、トランザクションの開始、コミット、または中止を行うことができます。 セッションは、データベースのアタッチ、作成、または開きにも使用されます。 セッションは、すべての 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
この呼び出しに使用するデータベース インスタンス。
psesid
正常に戻った場合にセッション ハンドルが初期化する変数へのポインター。
szUserName
このパラメーターは予約されています。
szPassword
このパラメーターは予約されています。
戻り値
この関数を使用すると、この API で定義されているすべての JET_ERRを返すことができます。 Jet エラーの詳細については、「 記憶域エンジンの拡張可能 エラー」および「 エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作は正常に完了しました。 |
JET_errClientRequestToStopJetService |
JetStopService の呼び出しの結果、セッションに関連付けられたインスタンス上のすべてのアクティビティが停止したため、操作を完了することはできません。 |
JET_errInstanceUnavailable |
セッションに関連付けられているインスタンスで致命的なエラーが発生したため、操作を完了できません。このエラーでは、そのデータの整合性を保護するためにすべてのデータへのアクセスを取り消す必要があります。 このエラーは、Windows XP 以降のリリースでのみ返されます。 |
JET_errInvalidParameter |
指定されたパラメーターの 1 つに、予期しない値が含まれていたか、別のパラメーターの値と組み合わせると意味のない値が含まれていました。 |
JET_errNotInitialized |
セッションに関連付けられているインスタンスがまだ初期化されていないため、操作を完了できません。 |
JET_errOutOfMemory |
メモリを割り当てられなかったため、操作が失敗しました。 |
JET_errOutOfSessions |
エンジンがクライアントの起動を許可するセッションの数は限られています。 この値は、JET_paramMaxSessions定数を指定して JetSetSystemParameter を 使用して変更できます。 セッションの既定の数は 16 です。 JET_paramMaxSessionsの詳細については、「 システム パラメーター」を 参照してください。 |
JET_errRestoreInProgress |
セッションに関連付けられているインスタンスで復元操作が進行中であるため、操作を完了できません。 |
JET_errTermInProgress |
セッションに関連付けられているインスタンスがシャットダウンされているため、操作を完了できません。 |
成功すると、セッション ハンドルが初期化され、データベース操作に使用できます。
失敗した場合、使用可能なセッションがないか、新しいセッションを初期化できませんでした。
注釈
異なるスレッド間でセッションを使用する場合は、注意が必要です。 セッションは、 JetBeginTransaction、 JetCommitTransaction、または JetRollback 中に使用されたスレッドを追跡し、開いているトランザクションで複数のスレッドで使用するとエラーをスローします。 JetResetSessionContext、JetSetSessionContext は、この動作を変更できます。 セッションは依然としてシリアル化されたコンテキストであり、複数のデータベース操作を 1 つのセッションで同時に実行することはできず、シリアル化のみであるためです。 ただし、複数のセッションを使用して、同時データベース アクセスを実現できます。 セッション コンテキストを設定およびリセットすることで、スレッド間のトランザクション内でセッションを使用できます。
セッション ハンドルは JetEndSession で閉じる必要があります。
要件
要件 | 値 |
---|---|
Client |
Windows Vista、Windows XP、または Windows 2000 Professional が必要です。 |
[サーバー] |
Windows Server 2008、Windows Server 2003、または Windows 2000 Server が必要です。 |
Header |
Esent.h で宣言されています。 |
Library |
ESENT.lib を使用します。 |
[DLL] |
ESENT.dllが必要です。 |
Unicode |
JetBeginSessionW (Unicode) および JetBeginSessionA (ANSI) として実装されます。 |
参照
JET_ERR
JET_INSTANCE
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetDupSession
JetEndSession
JetResetSessionContext
JetRollback
JetSetSessionContext
JetStopService
システム パラメーター