tuxedo 和oracle连接的几种方法

1,通过ubb的配置clopt

tpsvrinit(int argc, char *argv[])
{
    int i;
    char link[30];
    for(i=1; i<argc; i++) if(!strcmp(argv[i], "--")) break;
/****tuxedo服务器的命令行参数是通过配置文件中的CLOPT参数提供的,*****/
/****clopt同时为main()和tpsvrinit提供参数,被"--"分成两部分,前部分由main处理,后半部有tpsvrinit处理*****/
    /****login ORACLE*****/
    strcpy(link,argv[i+1]);
    /***** Connect to the DB****/
    EXEC SQL CONNECT :link;
    if ( sqlca.sqlcode!=0 )
    {
        userlog("openoh: Connect to DB failed\n");
        return 0;
    }
    return 0;
}

2,写在 服务器端 ,通过 pro*c连接

exec sql begin declare section;

    varchar usr[10];

    varchar pwd[10];

    varchar host[10];

    char db_code[10];

              char db_string[50];

              int db_id;

              int id;

    varchar airecode[10];

    varchar origin[10];

    varchar destination[10];

exec sql end declare section;

int tpsvrinit(int argc, char *argv[])

{

       argc = argc;

       argv = argv;

       /***** 连接ORACLE *****/   

strcpy((char *)usr.arr,"tktdev");

       usr.len=strlen((char *)usr.arr);

       strcpy((char *)pwd.arr,"tktdev");

       pwd.len=strlen((char *)pwd.arr);

       strcpy((char *)host.arr,"TTLORAE1");

       host.len=strlen((char *)host.arr);

       EXEC SQL connect :usr IDENTIFIED BY :pwd USING :host;

       if (sqlca.sqlcode !=0)

       {

           userlog( "Oracle err: %s",sqlca.sqlerrm.sqlerrmc);

           return -1;

       }

      

userlog("svrSelect connected to oracle\n");

      

       return(0);

}


3,

Ø 长连接,通过ubb连接

改*GROUPS节的配置为:(scott/tiger为本数据库所采用的用户及口令,可根据需要更改)
        *GROUPS
        GROUP1 LMID=simple    GRPNO=1
        OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=600+MaxCur=5+LogDir=."
        TMSNAME="TMS_ORA8i"    TMSCOUNT=2

程序中调用如下

tpsvrinit(int argc, char *argv[])

{

       argc = argc;

       argv = argv;

       /* userlog writes to the central TUXEDO message log */

       userlog("Welcome to the simple server");

      

       if (tpopen() == -1)

       {

              printf("connect to Oracle error\n");

          return -1;

       }

      

       printf("connected to oracle\n");

      

       return(0);

}

关闭服务:

void tpsvrdone()

{

       if (tpclose() == -1)

       {

              printf("disconnect to Oracle error\n");

              return;

       }

原文地址:https://www.cnblogs.com/danghuijian/p/4400891.html