ヘッダーをスキップ
Oracle TimesTen In-Memory Database TTClassesガイド
リリース7.0
E05171-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

TTXlaPersistConnection

TTXlaPersistConnectionは、TimesTenデータ・ストアへの永続接続を定義します。

パブリック・メンバー

なし

パブリック・メソッド

メソッド
説明
指定されたブックマークを使用して接続します。
指定されたブックマークを使用して接続します。ブックマークが存在しない場合は、ブックマークを作成します。
ブックマークを削除し、データ・ストアから切断します。
TimesTenデータ・ストアへのXLA接続を閉じます。
ブックマークを次の更新セットに進めます。
トランザクション・ログ内での現在の位置を格納します。
保存されたトランザクション・ログ索引に戻ります。
指定された待機時間内にトランザクション・ログの更新をフェッチします。

Connect(createBookmark)

virtual void Connect (const char* connStr, const char * bookmark,

      bool createBookmark, TTStatus&);

各永続XLA接続には、接続の切断時と再接続時にトランザクション・ログ内の同じ位置を検出できるように、名前(またはブックマーク)が関連付けられます。接続のブックマークの名前は、bookmarkパラメータによって指定されます。


注意: 特定のブックマーク名で接続できるXLA接続は1つのみです。複数の接続が同じブックマークに接続しようとすると、エラーが返されます。

これが新しいブックマークであるか、以前に作成されたブックマークであるかは、ブール値のパラメータcreateBookmarkによって指定されます。新規(createBookmark==true)として指定したブックマークがすでに存在する場合は、エラーが返されます。同様に、既存(createBookmark==false)として指定したブックマークがまだ存在していない場合にも、エラーが返されます。

Connect

virtual void Connect (const char* connStr, const char * bookmark,

     TTStatus&);

この第2のConnectメソッドでは、まず指定されたブックマークを使用して接続が試行され、それを再利用して(createBookmarkの暗黙値==false)接続が試行されます。そのブックマークが存在しない場合は、接続およびbookmarkという名前の新規ブックマークの作成(createBookmarkの暗黙値==true)が試行されます。

このメソッドは、XLAブックマークが存在するかどうかを開発者が気にかけたくない場合に備えて、XLA接続ロジックを簡素化するために便宜上提供されているものです。

DeleteBookmarkAndDisconnect

void DeleteBookmarkAndDisconnect (TTStatus&)

このメソッドでは、現在接続に関連付けられているブックマークが削除され、そのブックマークに関連するレコードがデータ・ストア内に保持されなくなります。その後、データ・ストアから切断されます。

Disconnect

virtual void Disconnect (TTStatus&)

このメソッドにより、TimesTenデータ・ストアとのXLA接続が閉じます。このメソッドをコールした後も、XLAブックマークは存続します。ブックマークを削除して、データ・ストアから切断する場合は、TTXlaPersistConnection::DeleteBookmarkAndDisconnectを使用します。

ackUpdates

void ackUpdates (TTStatus &)

このメソッドは、ブックマークを次の更新セットに進めるために使用されます。更新セットを確認した後、それらの更新を再度表示することはできません。更新セットの再生については、「getBookmarkIndex」および「setBookmarkIndex」を参照してください。

アプリケーションは、XLAレコードのバッチが読み取られて処理されたら、トランザクション・ログ・ファイルが格納されるディスクがこれらのファイルで一杯にならないように、更新を確認する必要があります。ackUpdatesは相対的に負荷の高い操作であるため、これを頻繁にコールしないでください。

アプリケーションがXLAを使用してレコードのバッチを読み取った後に障害が発生した場合は、アプリケーションがXLAを使用して再接続したときに、それらのレコードを取得できます。

getBookmarkIndex

void getBookmarkIndex (TTStatus &)

このメソッドでは、現在のブックマークの位置が取得されます。

setBookmarkIndex

void setBookmarkIndex (TTStatus &)

このメソッドでは、以前に取得されたブックマークの位置にブックマークがリストアされます。このメソッドを使用すると、何度でもレコードのバッチを再生できます。

ackUpdatesがコールされると、格納されているトランザクション・ログ・プレースホルダが無効になることに注意してください。ackUpdatesの後でsetBookmarkIndexがコールされても、以前に取得されたブックマークの位置まで戻ることができないため、エラーが返されます。

fetchUpdatesWait

void fetchUpdatesWait (ttXlaUpdateDesc_t*** arry, int maxrecs,

      int* recsP, int seconds, TTStatus&)

このメソッドは、データ・ストアの変更を記述したレコードのセットをフェッチするために、XLAアプリケーションで使用されます。ttXlaUpdateDesc_t構造体のリストが返されます。フェッチされるXLA更新がない場合、このメソッドは指定された秒数待機してから返されます。

コール元は、受信するレコードの最大数を指定します。メソッドが返されると、コール元は実際に返されたレコードの数と、変更を定義している構造体を指すポインタの配列を受信します。

このメソッドによって返されるttXlaUpdateDesc_t構造体は、XLA仕様で定義されます。これらのメソッドのC++オブジェクト指向カプセル化は提供されません。

使用方法

永続XLAアプリケーションは、複数のTTXlaPersistConnectionオブジェクトを作成する場合があります。各TTXlaPersistConnectionオブジェクトを、独自のブックマークに関連付ける必要があります。ブックマークは::Connect時に指定され、::ackUpdatesおよび::deleteBookmarkメソッドによって保持される必要があります。

永続XLA接続が確立されると、アプリケーションは、その終了までfetchUpdates[Wait]メソッドを繰り返しコールするループに入ります。このループでは、トランザクション・ログでディスクが一杯にならないように、できるだけ速くXLAから更新をフェッチする必要があります。アプリケーションは、更新のバッチを処理した後、それらの更新を確認するためにackUpdatesをコールし、次のfetchUpdatesのコールに備えます。更新のバッチは、setBookmarkIndexおよびgetBookmarkIndexメソッドを使用して再生できます。また、永続XLAアプリケーションがfetchUpdates[Wait]の後(ただしackUpdatesの前)に切断されると、fetchUpdates[Wait]をコールする次の接続(同じブックマーク名を使用)は、同じ更新のバッチを参照します。

TTXlaPersistConnectionオブジェクトがデータ・ストアから切断されている間に実行された更新は失われませんが、別のTTXlaPersistConnectionオブジェクトが同じブックマーク名で接続されるまで、トランザクション・ログに格納されます。