11. 附录11.1 simpsvrUp#include#include "atmi.h"void TOUPPER(TPSVCINFO *rqst){int i;char *buf;long sendlen,rcvlen;for(i = 0; i < rqst->len-1; i++)rqst->data[i] = toupper(rqst->data[i]);userlog("From Client ReqId[%s]",rqst->data);sendlen = rqst->len;if((buf = (char *) tpalloc("STRING", NULL, sendlen+1)) == NULL){(void) fprintf(stderr,"Error allocating send buffer\n");tpterm();exit(1);}(void) strcpy(buf, rqst->data);if (tpcall("TOLOWER", (char *) buf, 0, (char **)&buf, &rcvlen, (long)0 ) == -1) {userlog( "TPCALL ERROR CODE %d message[%s]", tperrno, tpstrerror(tperrno)); (void) fprintf(stderr, "Tperrno = %d\n", tperrno);tpfree( buf);tpreturn(TPSUCCESS, 0, buf, 0L, 0);}userlog("Call Remote ToLower Success [%s]", buf);tpreturn(TPSUCCESS, 0, buf, 0L, 0);}11.2 simpsvrLow#include#include "atmi.h"void TOLOWER(TPSVCINFO *rqst){int i;for(i = 0; i < rqst->len-1; i++)rqst->data[i] = tolower(rqst->data[i]);userlog("From Client ReqId[%s]",rqst->data);printf("In ToLower");//sleep(10);tpreturn(TPSUCCESS, 0, rqst->data, 0L, 0); }11.3 ubbmp*RESOURCESIPCKEY 45678MASTER site1,site2MAXACCESSERS 1000MAXSERVERS 200MAXSERVICES 100MODEL MPLDBAL YOPTIONS LAN,MIGRATE*MACHINESFireCat1 LMID=site1UID=508GID=508APPDIR="/home/tuxapp/tuxedo"TUXCONFIG="/home/tuxapp/tuxedo/tuxconfig" TUXDIR="/home/tuxedo/tuxedo8.1"TYPE="linux"MAXWSCLIENTS=100FireCat2 LMID=site2UID=508GID=508APPDIR="/home/tuxapp/tuxedo"TUXCONFIG="/home/tuxapp/tuxedo/tuxconfig" TUXDIR="/home/tuxedo/tuxedo8.1"TYPE="LINUX"MAXWSCLIENTS=100*GROUPSGROUP1LMID=site1 GRPNO=1 OPENINFO=NONEGROUP2LMID=site2 GRPNO=2 OPENINFO=NONE*NETWORKsite1 NADDR="//192.168.8.120:6009"NLSADDR="//192.168.8.120:8888"site2 NADDR="//192.168.8.121:7010"NLSADDR="//192.168.8.121:8888"*SERVERSRESTART=N MAXGEN=5 REPLYQ=Y CLOPT="-A"WSL SRVGRP=GROUP1 SRVID=1CLOPT="-A — -n //192.168.8.120:9502 -m 5 -x 5 -M 30"WSL SRVGRP=GROUP2 SRVID=100CLOPT="-A — -n //192.168.8.121:9502 -m 5 -x 5 -M 30"simpsvr SRVGRP=GROUP2 SRVID=11 RQADDR=RQ_simp1 RQPERM=0666 CLOPT="-A -p 1,10:2,1 " MIN=5 MAX=10 simpsvr SRVGRP=GROUP1 SRVID=111 RQADDR=RQ_simp2 RQPERM=0666 CLOPT="-A -p 1,10:2,1 " MIN=5 MAX=10 *SERVICES11.4 country ubbdm*RESOURCESIPCKEY 240000MASTER tuxtestPERM 0666MAXACCESSERS 1000MAXSERVERS 50MAXSERVICES 100MODEL SHMLDBAL YSCANUNIT 5SANITYSCAN 12BBLQUERY 30DBBLWAIT 2BLOCKTIME 6*MACHINESDEFAULT:CharlesLinux LMID=tuxtestMAXWSCLIENTS=100APPDIR="/home/tuxapp/tuxedo"TUXCONFIG="/home/tuxapp/tuxedo/tuxconfig"TUXDIR="/home/tuxedo/tuxedo8.1"ULOGPFX="/home/tuxapp/tuxedo/ULOG"*GROUPSADMINLMID=tuxtest GRPNO=1 OPENINFO=NONEREMITLMID=tuxtest GRPNO=2 OPENINFO=NONEDOMGRPLMID=tuxtest GRPNO=3DOMGRP1LMID=tuxtest GRPNO=4LMID=tuxtest GRPNO=5*SERVERSDEFAULT:CLOPT="-A " REPLYQ=Y RESTART=Y GRACE=0 MAXGEN=5WSL SRVGRP=ADMIN SRVID=1CLOPT="-A -t — -n //111.111.111.22:6666-m 10 -M 100 -x 5"simpsvrUp SRVGRP=REMIT SRVID=10 RQADDR=RQ_simpUp RQPERM=0666 CLOPT="-A – p 1,10:2,1 " MIN=2 MAX=10 DMADM SRVGRP=DOMGRP SRVID=3050 REPLYQ=N RESTART=Y GRACE=0GWADM SRVGRP=DOMGRP1 SRVID=3051 REPLYQ=N RESTART=Y GRACE=0GWTDOMAIN SRVGRP=DOMGRP1 SRVID=3052 RQADDR=RQ_GWT1 REPLYQ=Y RESTART=Y MIN=1 MAX=1GWADM SRVGRP=DOMGRP2 SRVID=3053 REPLYQ=N RESTART=Y GRACE=0GWTDOMAIN SRVGRP=DOMGRP2 SRVID=3054 RQADDR=RQ_GWT2 REPLYQ=Y RESTART=Y MIN=1 MAX=1*SERVICES11.5 countrydom*DM_RESOURCES*DM_LOCAL_DOMAINSHOME1 GWGRP=DOMGRP1CONNECTION_POLICY=ON_STARTUPTYPE=TDOMAINDOMAINID="EPR111"BLOCKTIME=10MAXDATALEN=1000MAXRDOM=89#DMTLOGDEV="/home/tuxapp/tuxedo/tlog/DMTLOG"HOME2 GWGRP=DOMGRP2CONNECTION_POLICY=ON_STARTUPTYPE=TDOMAINDOMAINID="EPR112"BLOCKTIME=10MAXDATALEN=1000*DM_REMOTE_DOMAINSRMTGJ TYPE=TDOMAINDOMAINID=EPRGJ*DM_TDOMAINHOME1 NWADDR="//111.111.111.22.:6651"HOME2 NWADDR="//111.111.111.22:6652"RMTGJ NWADDR="//111.111.111.33:6660"*DM_LOCAL_SERVICESTOUPPER*DM_REMOTE_SERVICES# TOLOWER LDOM= HOME1 RDOM= RMTGJ RNAME= TOLOWER# TOLOWER LDOM= HOME2 RDOM= RMTGJ RNAME= TOLOWER11.6 world ubbdm*RESOURCESIPCKEY 240000MASTER tuxtestPERM 0666MAXACCESSERS 1000MAXSERVERS 50MAXSERVICES 100MODEL SHMLDBAL YSCANUNIT 5SANITYSCAN 12BBLQUERY 30DBBLWAIT 2BLOCKTIME 6*MACHINESDEFAULT:localhost LMID=tuxtestMAXWSCLIENTS=100APPDIR="/home/tuxapp/tuxedo"TUXCONFIG="/home/tuxapp/tuxedo/tuxconfig"TUXDIR="/home/tuxedo/tuxedo8.1"ULOGPFX="/home/tuxapp/tuxedo/ULOG"TLOGDEVICE="/home/tuxapp/tuxedo/tlog/TLOG"*GROUPSADMINLMID=tuxtest GRPNO=1 OPENINFO=NONEREMITLMID=tuxtest GRPNO=2 OPENINFO=NONEDOMGRPLMID=tuxtest GRPNO=3*SERVERSDEFAULT:CLOPT="-A " REPLYQ=Y RESTART=Y GRACE=0 MAXGEN=5WSL SRVGRP=ADMIN SRVID=1CLOPT="-A — -n //111.111.111.121:6669 -m 1 -M 100 -x 5"simpsvrLow SRVGRP=REMIT SRVID=110 RQADDR=RQ_simpLow RQPERM=0666 CLOPT="- A – p 1,10:2,1 " MIN=2 MAX=10 DMADM SRVGRP=DOMGRP SRVID=3050 REPLYQ=NGWADM SRVGRP=DOMGRP SRVID=3051 REPLYQ=NGWTDOMAIN SRVGRP=DOMGRP SRVID=3052 REPLYQ=Y*SERVICES11.7 worlddom*DM_RESOURCES*DM_LOCAL_DOMAINSHOME GWGRP=DOMGRPTYPE=TDOMAINDOMAINID="EPRGJ"BLOCKTIME=10MAXDATALEN=1000MAXRDOM=89#DMTLOGDEV="/home/tuxapp/tuxedo/tlog/DMTLOG"*DM_REMOTE_DOMAINSRMT111 TYPE=TDOMAINDOMAINID=EPR111RMT112 TYPE=TDOMAINDOMAINID=EPR112*DM_TDOMAINHOME NWADDR="//111.111.111.121:6660"RMT111 NWADDR="//111.111.111.120:6651"RMT112 NWADDR="//111.111.111.120:6652"*DM_LOCAL_SERVICES#TOUPPERTOLOWER*DM_REMOTE_SERVICESTOUPPER#TOLOWER11.8 LoadRunner Scriptvuser_init:vuser_init(){return 0;}Action:#include "lrt.h"#include "replay.vdf"Action(){lrt_tuxputenv("WSNADDR=//111.111.111.22:6666");tpresult_int = lrt_tpinitialize(LRT_END_OF_PARMS);lrt_abort_on_error();data_0 = lrt_tpalloc("STRING", "", 4); lrt_strcpy(data_0, sbuf_1);data_1 = lrt_tpalloc("STRING", "", 4); tpresult_int = lrt_tpcall("TOUPPER", data_0,0,&data_1,&olen,0);lrt_abort_on_error();lrt_tpfree(data_0);lrt_tpfree(data_1);lrt_tpterm();return 0;}vuser_end:vuser_end(){return 0;}replay.vdf:#ifndef TUXVDF_H#define TUXVDF_Hchar* data_0;char* data_1;static const char sbuf_1[] ="yyy";/* Reply STRING buffer 1"yyy""\x0";Reply buffer */#endif11.9 bang Program#include#include"atmi.h"#include#include#include#include#includevoidPrtMillTime(char*);voidscallserver(intbuflen,char*sbuf);main(void){inti,j;charsToDo[200];charsReqId[11];pid_tchild;memset(sToDo,’\0′,sizeof(sToDo));memset(sReqId,’\0′,sizeof(sReqId));PrtMillTime(sReqId);printf("starttime[%s]\n",sReqId);for(i=0;i<=30;i++){if((child=fork())==-1){//printf("ForkError:%s\n",strerror(errno));printf("ForkError\n");exit(1);}elseif(child==0){sprintf(sToDo,"%s%d\n","/home/tuxapp/bin/simpcli",getpid()); for(j=0;j<100;j++){//PrtMillTime(sReqId);//printf("Iamthechild:%ld\n",getpid());sprintf(sToDo,"%d",getpid());scallserver(1,sToDo);}exit(2);}}PrtMillTime(sReqId);printf("endtime[%s]\n",sReqId);exit(0);}voidPrtMillTime(char*sDesc){structtm*tmCurTime;structtimebtbTimeBlock;charszDescription[41];charsRet[20];memset(szDescription,0,sizeof(szDescription));strncpy(szDescription,sDesc,40);memset(sRet,’\0′,sizeof(sRet));ftime(&tbTimeBlock);tmCurTime=localtime(&tbTimeBlock.time);sprintf(sDesc,"%02d%02d%02d%02d%03d",tmCurTime->tm_mday,tmCurTime->tm_hour,tmCurTime->tm_min,tmCurTime->tm_sec,litm);}voidscallserver(intbuflen,char*sbuf){char*buf;longsendlen,rcvlen;intret;if(tpinit((TPINIT*)NULL)==-1){(void)fprintf(stderr,"Tpinitfailed\n");exit(1);}sendlen=strlen(sbuf);if((buf=(char*)tpalloc("STRING",NULL,sendlen+1))==NULL){(void)fprintf(stderr,"Errorallocatingsendbuffer\n");tpterm();exit(1);}(void)strcpy(buf,sbuf);ret=tpcall("TOUPPER",(char*)buf,0,(char**)&buf,&rcvlen,(long)0);if(ret==-1){(void)fprintf(stderr,"Can’tsendrequesttoserviceTOUPPER\n");(void)fprintf(stderr,"Tperrno=%dmessage[%s]\n",tperrno,tpstrerror(tperrno));tpfree(buf);tpterm();exit(1);}tpfree(buf);tpterm();}编辑于联动北方技术论坛。