トランザクション・ログAPIによるトランザクション変更の検出
TimesTen Classicで提供されるトランザクション・ログAPI (XLA)によって、アプリケーションでローカル・データベースのトランザクション・ログを監視して他のアプリケーションによる変更を検出できます。
また、XLAが提供する関数によって、XLAアプリケーションでは、検出した変更を別のデータベースに適用できます。XLAはC言語のAPIです。TimesTen Classicでは、TTClassesの一部としてXLAのC++ラッパー・インタフェースが提供され、別個のJavaラッパー・インタフェースも提供されます。
アプリケーションではXLAを使用して、変更通知スキームを実装します。このスキームでは、XLAアプリケーションがデータベースに変更がないかどうかを監視し、変更に基づいて対処できます。たとえば、株式取引環境におけるTimesTenデータベースは、株価のデータ・ストリームによって絶えず更新されます。自動取引アプリケーションでは、XLAを使用して特定の株価の更新についてデータベースを監視し、その情報に基づいて発注するかどうかを判断する場合があります。完成例は、「TimesTen Classicアプリケーション使用例」を参照してください。
また、XLAを使用してカスタム・データ・レプリケーション・ソリューションを構築し、TimesTenレプリケーションのかわりに使用することもできます。このようなXLA対応レプリケーション・ソリューションには、TimesTen以外のデータベースへのデータのレプリケートが伴う場合があります。
『Oracle TimesTen In-Memory Database C開発者ガイド』のXLAおよびTimesTenイベント管理、および『Oracle TimesTen In-Memory Database Java開発者ガイド』のJMS/XLAを使用したイベント管理を参照してください。
TTClassesの詳細は、『Oracle TimesTen In-Memory Database TTClassesガイド』のTTClassesでのXLAの使用を参照してください。
次の項では、TimesTen ClassicでのXLAの動作について説明します。
XLAの動作
XLAは、トランザクションの更新レコードをトランザクション・ログ・バッファから直接取得します。レコードがバッファ内に存在しない場合、XLAはトランザクション・ログ・ファイルから更新レコードを取得します。
読取りアクセスは、ブックマークを使用して、ログ更新ストリームにおける位置を保持します。ブックマークはデータベースに保存されるため、データベースの接続、停止および障害が発生しても永続的に維持されます。「トランザクション・ログ・ファイルが削除される状況」で説明されているように、XLAブックマークが存在することにより、トランザクション・ログ・ファイル内のXLAログ・レコードが読み取られてXLAアプリケーションによって確認されるまで、そのトランザクション・ログ・ファイルは削除されなくなります。
図8-1を参照してください。