JetStopServiceInstance2 関数

適用対象: 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、JetCreateInstance2JetInit、または 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