グローバルトランザクション連携を行うには、SQL文の実行の前にdbenlistxatrans()を実行します。これにより、トランザクションがデータベース連携サービスによってXA配下に参加します。
method A{ dbenlistxatrans() /* XA配下であることを示す */ dbsqlexec() /* SQLの実行 */ }
基本的なサーバアプリケーションの例を以下に示します。
DBPROCESS *dbproc_server1; LOGINREC *login; void MethodA(CORBA_long param1) { TCHAR SqlStatement[STR_LEN*2]; /* XA配下のトランザクションである dbenlistxatrans(dbproc_server1, TRUE); /* SQL文の作成 */ sprintf(SqlStatement, "update DOGDB..DOGTBL set DOGCOL002=DOGCOL002 + 1 where DOGCOL001 = %d",param1); /* SQL文の送信 */ dbcmd(dbproc_server1, SqlStatement); dbsqlexec(dbproc_server1); dbresults(dbproc_server1); } int main() { : /* : * CORBA_ORB_initなど準備処理 : */ login = dblogin(); DBSETLUSER(login, "monkey"); DBSETLPWD(login, "saru"); DBSETLAPP(login, "example"); dbproc_server1 = dbopen(login, "TIGER"); dbuse(dbproc_server1, "DOGDB"); CORBA_BOA_impl_is_ready( boa, impl, &env_g ); dbexit(); return 0; }