linux tuxedo 入门

来源:互联网 发布:淘宝十大内衣模特姓名 编辑:程序博客网 时间:2024/06/05 23:50

折腾了大半天都终把tuxedo安装,并写好第一个例子,即然安装可以使用UI的方式进行安装,安装完成后要进行环境变量的配置,把tuxedo目录中的tux.env的配置,添加到/home/oracle/.bash_profile,因为我是以oracle用户来安装oracle 和tuxedo 的。

 

服务器端代码simpserv.c:

#include <stdio.h>
#include <ctype.h>
#include <atmi.h>
#include <userlog.h>

#if defined(_STDC_)||defined(_cplusplus)
    tpsvrinit(int argc,char *argv[])
#else
    tpsvrinit(argc,argv)
    int argc;
    char **argv;
#endif

{
   argc=argc;
   argv=argv;
   userlog("Welcome to the simple server");
   return(0);     
}
#ifdef _cplusplus
   extern "C"
#endif

#if defined(_STDC_)||defined(_cplusplus)
   void TOUPPER(TPSVCINFO *rqst)
#else
   void TOUPPER(rqst)
   TPSVCINFO *rqst;
#endif
{
   int i;
   for(i=0;i<rqst->len-1;i++)
       rqst->data[i]=toupper(rqst->data[i]);
   tpreturn(TPSUCCESS,0,rqst->data,0L,0);   
}

编译方法指令:buildserver -o simpserv -f simpserv.c -s TOUPPER

 

客户端代码simpcl.c:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "atmi.h"

#if defined(_STDC_)||defined(_cplusplus)
    main(int argc,char *argv[])
#else
    main(argc,argv)
    int argc;
    char *argv[];
#endif
{
    char *sendbuf,*rcvbuf,*ptr;
    char *msg="Tuxedo is powerful.";
    long sendlen,rcvlen;
    int ret;
   
    /*开始连接*/
    if(tpinit((TPINIT *)NULL)==-1 ){
        (void)fprintf(stderr,"Tpinit failed/n");
        exit(1);
    }
   
    if(argc!=2){
        ptr=msg;
    }else{
        ptr=argv[1];
    }
    sendlen=strlen(ptr);
   
    if( (sendbuf=(char *)tpalloc("STRING",NULL,sendlen+1))==NULL ){
        (void)fprintf(stderr,"Error allocating send buffer/n");
        tpterm();
        exit(1);   
    }
   
    if( (rcvbuf=(char *)tpalloc("STRING",NULL,sendlen+1))==NULL ){
        (void)fprintf(stderr,"Error allocating receive buffer/n");
        tpterm();
        exit(1);   
    }
   
    (void)strcpy(sendbuf,ptr);
   
    ret=tpcall("TOUPPER",(char *)sendbuf,0,(char **)&rcvbuf,&rcvlen,(long)0);
    if(ret==-1){
        (void) fprintf(stderr,"Can't send request to service TOUPPER/n");
        (void) fprintf(stderr,"Tperrno=%d/n",tperrno);
        tpfree(sendbuf);
        tpfree(rcvbuf);
        tpterm();
        exit(1);
    }
   
    (void)fprintf(stdout,"Original string is : %s/n",ptr);
    (void)fprintf(stdout,"Returned string is : %s/n",rcvbuf);
    tpfree(sendbuf);
    tpfree(rcvbuf);
    tpterm();
    return(0);
   
   
   
}

编译该客户端:buildclient -o simpcl -f simpcl.c

最麻烦的服务配置文件ucf.txt:

*RESOURCES

IPCKEY    80952

DOMAINID  simpapp
MASTER    SITE1
MAXACCESSERS    10
MAXSERVERS      5
MAXSERVICES     10
MODEL        SHM
LDBAL           N
*MACHINES
DEFAULT:
   APPDIR="/home/oracle/tdemos"
   TUXCONFIG="/home/oracle/tdemos/tuxconfig"
   TUXDIR="/oracle/tuxedo10gR3"
"rel5" LMID=SITE1
*GROUPS
GROUP1 LMID=SITE1 GRPNO=1 OPENINFO=NONE
*SERVERS
simpserv   SRVGRP=GROUP1  SRVID=1
*SERVICES
TOUPPER

其中,项目存放目录是/home/oracle/tdemos,编译命令:

tmloadcf -y ucf.txt

编译ucf.txt使之生成二进制形式的tuxedo所识别的服务配置,生成的二进制配置文件名就是TUXCONFIG="/home/oracle/tdemos/tuxconfig"


启动tuxedo运行服务程序

 

以上步骤都通过后,执行tmboot -y启动tuxedo服务

 

 

简单任务管理

执行tmadmin 进入公告版任务解析器。

>psr  

打印服务器进程信息

>psc -a 2

打印有名服务信息

>bbs

打印公告板统计信息

关闭tuxedo服务

tmshutdow -y

原创粉丝点击