適用対象: Windows |Windows Server
JetStopServiceInstance2 関数は、Suspend の前にインスタンスを準備し、Resume の後にインスタンスを準備します。 中断と再開は、Windows ストア アプリライフサイクル モデルの実行状態です。
JetStopServiceInstance2 関数は、Windows 8で導入されました。
JET_ERR JET_API JetStopServiceInstance2(
_In_ JET_INSTANCE instance
_In_ const JET_GRBIT grbit
);
パラメーター
instance
ターゲット インスタンス。 JET_INSTANCEデータ型は、JET API の呼び出しに使用するデータベースのインスタンスへのハンドルです。 このハンドルは、JetCreateInstance、JetCreateInstance2、JetInit、または JetInit2 関数を呼び出して、データベースのインスタンスを作成するときに取得されます。
grbit
次の表に示す値と定義されている 1 つ以上の値を指定するビットのグループ。
値 |
説明 |
|---|---|
JET_bitStopServiceAll |
指定したインスタンスのすべての Extensible Storage Engine (ESE) サービスを停止します。 |
JET_bitStopServiceBackgroundUserTasks |
再起動可能なクライアント指定のバックグラウンド メンテナンス タスク (B+ Tree Defrag など) を停止します。 |
JET_bitStopServiceQuiesceCaches |
すべてのダーティキャッシュをディスクに休止します。 この値は非同期であり、取り消すことができます。 |
JET_bitStopServiceResume |
以前に発行された StopService 操作を再開します。つまり、サービスを再起動します。 この値を grbits パラメーターと組み合わせて特定のサービスを再開することも、以前に停止したすべてのサービスを再開するJET_bitStopServiceAllを使用することもできます。 このビットは、StopServiceBackgroundUserTasks と JET_bitStopServiceQuiesceCachesの再開にのみ使用できます。 以前に JET_bitStopServiceAll で を呼び出した場合、JET_bitStopServiceResumeを使用しようとすると失敗します。 2 番目の再開ステップが呼び出されない場合、アプリケーションのパフォーマンスが低下します。 この状況では、チェックポイントは 0 に保持されます。 |
戻り値
この関数は、次のいずれかの戻りコードを 使用して、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張ストレージ エンジン エラー と エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
|---|---|
JET_errSuccess |
操作は正常に完了しました。 |
解説
この関数を使用すると、JET アプリケーションはデータベース キャッシュをクリーンまたはほぼクリーン状態 (オペレーティング システムの I/O アイドル状態) に移動できます。これにより、アプリケーションを終了する場合は復旧が迅速になります。 この方法は、JetTerm または JetDetachDatabase 関数を呼び出して JET を終了するよりも優先されます。そのため、より一般的なシナリオでは、アプリケーションは中断されておらず、後でアプリケーションはキャッシュ全体を持ち、できるだけ早く実行する準備が整います。
この関数が成功すると、データベース キャッシュが間もなく中断される準備をします。 この関数キューはバックグラウンド ワーカー スレッドに対して機能し、すぐに呼び出し元に戻ります。 この関数は、アプリケーションの中断イベント ハンドラーからを呼び出すのではなく、PLM VisibilityNotice に基づいて呼び出して、PLM がプロセスを中断または終了する前に JET がバッファーダーティフラッシュする時間を確保する必要があります。 内部的には、JET は、構成の変更時にチェックポイント メンテナンスの即時ディスパッチをトリガーします (チェックポイントの更新またはこの新しい休止キャッシュ ビット)。 VisibilityNotice イベントの詳細については、「 VisibilityChangedEventArgs クラス」を参照してください。
この関数は 2 回呼び出す必要があります。 これは、アプリケーションがオペレーティング システムから中断通知を受け取った後、アプリケーションが中断される前に呼び出されます。 その後、オペレーティング システムがアプリケーションを再開した後に、再度呼び出されます。 次に例を示します。
Suspend に呼び出された場合: JET_ERR JET_API JetStopServiceInstance2( instance, JET_bitStopServiceQuiesceCaches);
再開時: JET_ERR JET_API JetStopServiceInstance2( instance, JET_bitStopServiceQuiesceCaches|JET_bitStopServiceResume );
必要条件
| 要件 | 値 |
|---|---|
Client |
Windows 8が必要です。 |
[サーバー] |
Windows Server 2012が必要です。 |
Header |
Esent.h で宣言されています。 |
Library |
ESENT.lib を使用します。 |
[DLL] |
ESENT.dllが必要です。 |
関連項目
JET_ERR
JET_INSTANCE
JetCloseDatabase
JetCloseTable
JetDetachDatabase
JetEndSession
JetResetSessionContext
JetRollback
JetTerm
JetTerm2