「データ・ストア接続ハンドルの取得」の説明に従って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関数を使用できます。 |