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

前へ
前へ
次へ
次へ
 

XA接続からのODBCハンドルの取得

TimesTenでは、xa_open()でオープンされるXA接続に関連付けられているODBC接続ハンドルを取得する関数が提供されています。

tt_xa_context()

説明

この関数は、xa_open()でオープンされる接続に関連付けられているODBC接続ハンドルを取得するために使用されます。

構文

#include <tt_xa.h>

int tt_xa_context(int *rmid, SQLHENV *henv, SQLHDBC *hdbc);

パラメータ

パラメータ
説明
rmid
int(入力)
リソース・マネージャIDがNULLの場合、このスレッドの最初の接続に関連付けられているハンドルが返されます。
rmidがNULL以外の場合、指定されたrmid の値に関連付けられているハンドルが返されます。
henv
SQLHENV(出力)

現在のxa_open()コンテキストに関連付けられているSQLHENV。

hdbc
SQLHDBC(出力)

現在のxa_open()コンテキストに関連付けられているSQLHDBC。

返される値

0(成功)

1(rmidが見つかりません)

-1(無効なパラメータです)

コメント

rmidをNULLにしてこの関数を使用すると、 ユーザー作成のコードの範囲外(rmidが未知)で接続がオープンされているアプリケーション環境でコンテキストを確立します。

この例では、Tuxedoは、データ・ストアへの接続をオープンしてトランザクションを開始するためにxa_open() およびxa_start()をすでに使用しました。tt_xa_context()関数を使用して、xa_open()で割り当てられるSQLHENVおよび SQLHDBCハンドルを指定します。

do_insert()

{

SQLHENV henv;

SQLHDBC hdbc;

SQLHSTMT hstmt;

/* retrieve the handles for the current connection */

tt_xa_context(NULL, &henv, &hdbc);

/* now we can do our ODBC programming as usual */

SQLAllocStmt(hdbc, &hstmt);

SQLExecDirect(hstmt, "insert into t1 values (1)", SQL_NTS);

SQLFreeStmt(hstmt, SQL_DROP);

}