zoukankan      html  css  js  c++  java
  • 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;

           }

  • 相关阅读:
    分享一个Fluent风格的邮件发送封装类
    写一个ActionFilter检测WebApi接口请求和响应
    一道有趣的面试题,小鸟和火车的问题
    Centos7 查看Mysql配置文件
    Centos7 grep命令简介
    Centos7 网络配置
    django之python3.4及以上连接mysql的一些问题记录
    NetCore log4net 集成以及配置日志信息不重复显示或者记录
    ionic3中关于Ionic ui component使用的一些总结
    ionic2升级到ionic3并打包APK
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400891.html
Copyright © 2011-2022 走看看