ヘッダーをスキップ
Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド
リリース7.0
E05164-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

XLAの初期化およびXLAハンドルの取得

「データ・ストア接続ハンドルの取得」の説明に従ってODBCを初期化し、環境ハンドルおよび接続ハンドルを取得した後、XLAを初期化し、XLAハンドル(xla_handle)を取得して、トランザクション・ログにアクセスできます。1つのODBC接続に対して1つのみのXLAハンドルを作成します。アプリケーションで複数のリーダー・スレッドを使用する場合は、スレッドごとに個別のXLAハンドルおよびODBC接続を作成します。

TimesTenは、永続モードまたは非永続モードで初期化できます(「永続または非永続のXLAモード」を参照)。この項では、ほぼすべてのXLAアプリケーションで使用するモードである永続モードでXLAを初期化する方法について説明します。特別な理由から非永続モードでXLAを使用する必要がある場合は、「非永続モードでのXLAの初期化」を参照してください。

XLAを初期化する前に、ブックマーク(「XLAブックマークについて」を参照)およびXLAハンドルをttXlaHandle_h型として、次のように初期化する必要があります。

char bookmarkName [32] ;

strcpy(bookmarkName, "xlaSimple");

ttXlaHandle_h xla_handle = NULL;

bookmarkNameおよびxla_handleのアドレスをttXlaPersistOpen関数に渡してXLAハンドルを取得します。

rc = ttXlaPersistOpen(hdbc, bookmarkName, XLACREAT, &xla_handle);

XLACREATオプションは、新しいブックマークの作成を指定します。同じ名前のブックマークがすでに存在する場合は、次のように、XLAREUSEオプションを指定してttXlaPersistOpen をコールし、既存のブックマークを再利用します。

#include <tt_errCode.h> /* TimesTen error file */

if ( native_error == tt_ErrKeyExists ) {

      rc = ttXlaPersistOpen(hdbc, bookmarkName,

                            XLAREUSE, &xla_handle);

}

ttXlaPersistOpenに無効なパラメータが指定されている場合、またはアプリケーションでハンドル用のメモリーを割り当てることができなかった場合は、SQL_INVALID_HANDLEというコードが返されます。この場合、このエラーまたはこれ以降のエラーの検出にttXlaErrorは使用できません。

ttXlaPersistOpen は失敗しますが、まだハンドルを作成する場合は、メモリー・リークを防ぐためにハンドルを閉じる必要があります。


注意: TimesTenは、初期作成時に、アプリケーションがリンクされているTimesTenリリースと同じバージョンに、xla_handleを設定します。以前のXLAバージョンと相互運用する必要がある場合は、ttXlaGetVersionおよびttXlaSetVersion関数を使用できます。