ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(データベース連携サービス編)

G.5 サーバアプリケーションの作成(DB-Libraryの使用)

  グローバルトランザクション連携を行うには、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;
}