次の方法で共有


JetInit3 関数

適用対象: Windows |Windows Server

JetInit3 関数

JetInit3 関数は、データベース エンジンをデータベース ファイルのアプリケーション使用をサポートできる状態にします。 エンジンは、 JetSetSystemParameter 関数を使用して行う初期化用に既に適切に構成されている必要があります。 データベースのクラッシュ復旧は、初期化プロセスの一部として自動的に行われることに注意してください。

Windows Vista:JetInit3 は Windows Vista で導入されています。

    JET_ERR JET_API JetInit3(
      __in_out_opt  JET_INSTANCE* pinstance,
      __in_opt      JET_RSTINFO* prstInfo,
      __in          JET_GRBIT grbit
    );

パラメーター

pinstance

特定の呼び出しに使用するインスタンス。 このパラメーターの使用は、エンジンの動作モードによって異なります。 1 つのインスタンスのみがサポートされているレガシ モード (Windows 2000 互換モード) でエンジンが動作している場合は、このパラメーターを NULL に設定するか、 NULL またはJET_instanceNilを含む有効な出力バッファーに設定できます。これは、初期化の副作用として作成されたグローバル インスタンス ハンドルを返します。 このインスタンス ハンドルは、インスタンスを受け取る他の API に渡すことができます。 エンジンがマルチインスタンス モードで動作している場合は、初期化中の JetCreateInstance 関数によって返されるインスタンス ハンドルを含む有効な入力バッファーにこのパラメーターを設定する必要があります。

prstInfo

復旧中のデータベースの再マッピング、回復が停止する位置の設定、または現在の回復状態の決定に使用される追加の回復パラメーター。

grbit

次の表に示され、定義されているオプションの 0 個以上を指定するビットのグループ。

説明

JET_bitReplayReplicatedLogFiles

この値は、今後使用するために予約されています。

JET_bitCreateSFSVolumeIfNotExist

この値は、今後使用するために予約されています。

JET_bitReplayIgnoreMissingDB

この値を使用すると、ある時点でログ ファイル セットにアタッチされたデータベースがない場合でも、ユーザーは一連のログ ファイルに対して復旧を実行できます。

JET_bitRecoveryWithoutUndo

この値を使用すると、ユーザーは回復を実行できますが、元に戻すフェーズまで (および含まない) だけです。 この値を使用すると、追加のトランザクション ログを にコピーして適用できます。

JET_bitTruncateLogsAfterRecovery

この値を指定すると、論理的な回復が成功すると、ログ ファイルが切り捨てられます。

JET_bitReplayMissingMapEntryDB

この値を指定すると、データベース マップ エントリが見つからない場合、既定で同じ場所に移動します。

JET_bitReplayIgnoreLostLogs

この値を指定すると、ログ ストリームの末尾から失われたログは、復旧中に無視されます。

Windows 7:JET_bitReplayIgnoreLostLogs は Windows 7 で導入されています。

戻り値

この関数は、次のいずれかの戻りコードを含 むJET_ERR データ型を返します。 拡張可能記憶域エンジン (ESE) エラーの詳細については、「 Extensible Storage Engine Errors and Error Handling Parameters」を参照してください。

解説

JetSetSystemParameter 関数以外で使用するには、インスタンスを JetInit3 関数の呼び出しで初期化する必要があります。

インスタンスは、 JetInit 関数を使用して初期化されていなくても、 JetTerm 関数の呼び出しによって破棄されます。 インスタンスは、データベース エンジンの回復可能性の単位です。 データベース ファイルのセット内のデータの整合性を保護するために使用されるすべてのファイルのライフ サイクルを制御します。 これらのファイルには、チェックポイント ファイルとトランザクション ログ ファイルが含まれます。 JetInit3 関数が失敗した場合は、JetTerm を呼び出さないでください。 ただし、JetInit3 が呼び出されなかった場合、または JetInit3 が成功した場合は、JetCreateInstance2 によって作成されたすべてのインスタンスに対して JetTerm を呼び出す必要があります。

すべての関連データベースが存在しない一連のログ (通常の状況ではエラー JET_errAttachedDatabaseMismatchを返す) で復旧が実行されていて、データベースが見つからない場合でもクライアントが復旧を続行する場合は、使用可能なデータベースの復旧を続行するためにJET_bitReplayIgnoreMissingDBエラーが使用されます。

クラッシュ復旧は通常、クラッシュ時と同じマシン (および同じ構成) では発生しないため、通常、データベースの場所は変更されません。 ファイルを別のコンピューターに移動したり、別の場所にバックアップスナップショット復元したりする場合など、特定のシナリオでは、これは正しくありません。 JetInit3 関数を使用すると、古いデータベースの場所とその新しい場所との間のマッピング (JET_RSTINFOJET_RSTMAP 構造体を使用) を指定できます。 実際には、データベース ファイルがその場所に存在する限り、新しい場所のみが必要です。 復元されたデータベースの場所がわかったら、復元プロセスを通じてデータベースの識別にデータベース署名が使用されます。 元のデータベースの場所は、データベースを再作成する必要がある場合にのみ必要です。その場合は、署名がわかります。

また、元に戻す操作の後に回復を停止する必要がある場合は、回復を停止する特定のログ位置を指定できます。 これには、指定した位置が生成の一部で、実際のログの末尾を過ぎた場合に、特定のログ生成の終了時に停止する機能が含まれます。

詳細については、 JetInit トピックの「解説」セクションを参照してください。

要件

要件

クライアント

Windows Vista が必要です。

サーバー

Windows Server 2008 が必要です。

ヘッダー

Esent.h で宣言されています。

ライブラリ

ESENT.lib を使用します。

[DLL]

ESENT.dllが必要です。

Unicode

JetInit3W (Unicode) および JetInit3A (ANSI) として実装されます。

参照

拡張可能なストレージ エンジン ファイル
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_RSTINFO
JET_RSTMAP
JetCreateInstance
JetInit
JetInit2
JetSetSystemParameter
リソース パラメーター