折腾了大半天都终把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