トランザクション・ロギング

トランザクション・ログは複数の目的で使用されます。

  • システム障害が発生した場合に、トランザクションを再実行する。

  • ロールバックされるトランザクションを取り消す。

  • 他のTimesTenデータベースに変更をレプリケートする。

  • キャッシュの使用時に、Oracleデータベースへの変更内容をレプリケートする。

  • TimesTen Classicの場合、アプリケーションでXLAインタフェースを介して表への変更を監視できるようする。

トランザクション・ログは、ファイル・システムのファイルに格納されます。トランザクション・ログの末尾はインメモリー・バッファに存在します。

ノート:

ロギングおよびチェックポイント処理の詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』トランザクション管理を参照してください。

次の項では、トランザクション・ロギングのプロセスについて説明します。

ファイル・システムへのトランザクション・ログ・バッファの書込み

TimesTenでは、永続コミットごと、チェックポイントごと、および実装によって定義されているその他のタイミングごとに、インメモリー・トランザクション・ログ・バッファの内容がファイル・システム上のトランザクション・ログ・ファイルに書き込まれます。

障害発生時のコミット済トランザクションの損失を許容できないアプリケーションでは、適切な永続性接続属性を1に設定することで、読取り専用でないすべてのトランザクションに対して、永続コミットをリクエストする必要があります。

最近コミットした一部のトランザクションが不足していても許容できるアプリケーションでは、それらのトランザクションの一部またはすべてを非永続的にコミットすることでパフォーマンスが大幅に向上する可能性があります。これを行うには、適切な永続性接続属性を0に設定し、定期的な時間間隔、またはアプリケーション・ロジックの特定の時点で、明示的な永続コミットをリクエストします。

正しい永続性接続属性の設定、およびTimesTen Classicでの明示的な永続コミットのリクエスト方法については、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』永続性オプションを参照してください。正しい永続性接続属性の設定、およびTimesTen Scaleoutでの明示的な永続コミットのリクエスト方法については、『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』永続性設定を参照してください

トランザクション・ログ・ファイルが削除される状況

トランザクション・ログ・ファイルは、TimesTenで消去可能と宣言されるまで保持されます。トランザクション・ログ・ファイルが消去可能な場合、次のチェックポイント処理によって、そのトランザクション・ログ・ファイルが削除されます。

トランザクション・ログ・ファイルは、次のすべての処理が完了するまで消去できません。

  • トランザクション・ログ・ファイル(または前のトランザクション・ログ・ファイル)にログ・レコードを書き込むすべてのトランザクションが、コミットまたはロールバックされる。

  • トランザクション・ログ・ファイルに記録されたすべての変更が、チェックポイント・ファイルに書き込まれる。

  • TimesTen Classicレプリケーション使用時は、トランザクション・ログ・ファイルに記録されたすべての変更がレプリケートされる。

  • キャッシュの使用時は、トランザクション・ログ・ファイルに記録されたすべての変更内容がOracleデータベースに伝播される(キャッシュの動作がこのように構成されている場合)。

  • TimesTen ClassicでXLAが使用されている場合、トランザクション・ログ・ファイルに記録されたすべての変更が、XLAアプリケーションにレプリケートされる。

「チェックポイント処理」を参照してください。

TimesTenでのコミット

ODBCでは、各文の後にコミットを強制する 自動コミット・モードが提供されます。

デフォルトでは自動コミットが有効になり、文の実行に成功した直後に暗黙的コミットが発行されます。コミットを意図的に行うように自動コミットを無効にすることをお薦めします。

TimesTenでは、データ定義言語(DDL)文の前後に暗黙的コミットが発行されます。