




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第PAGE10TUXEDOTUXEDO协 编写技术指前文档目本文档描述了TUXEDO协议的基础知识和编写方法,旨在让阅读者能在短时间内快速掌握简单的TUXEDO协议的编写方法。为以后同类型协议脚的开发提供参考适用范围与对本文档不对Loadrunner基础开发方法和TUXEDO中间件基础知识做过多描述,初学者需要掌握基本的C语言知识。对于涉及本文中一些更次的技术性问题,请参术语及参ATMI,Application-to-TransactionMonitorInterface即“应用事务监视接口”,是TUXEDO系统的编程接口。他实现了X/Open组织定义的分布式事务处理(DTP)模型,为应用程序提供命名、通信、队列、事务和缓冲区管理等基础服务。消息队是一些空间,或者是内存(IPC消息队列或在硬盘上。TUXEDO协议介TUXEDO简XEDO中都可以使用XEDO作为一款型中间件其主要功能用于管理分布于不同计算机上的数据的一致性保障系统处理能力的效率以及均衡负载等目前的银行邮政XEDO连接协议。TUXEDOTUXEDO协 编写技术指TUXEDO协议通讯方式介①向System/T发出查询请求,以找到Server消息队列的地址②根据找到的地址将请求发送到Server的消息队列中 Server处理请求,并将结果返回给的消息队列/△订阅与发布TUXEDO协议Buffer类型介
CARRAY类型buffer是一种独立于机器的bufferVIEW(VIEW32:TUXEDOTUXEDO协 编写技术指FML(FML32:FML类型buffer为自定义Buffer。其允许存取多个命名的字段。例如:(NAME:"BEA",ADDRESS"Beijing",PHONE" ")。每一个命名的字段可以在buffer中存放零个或个(occurrences)的值.TUXEDO协议函数说明及例说明:虽然这只是一个指针数组,但其作用非常重要。任何TUXEDO运行前staticstaticchar*env_allow_array[]=说明:此函数将*env_allow_array[]TUXEDO环境列表中。0数值。BufferBuffer的指针。反NULL值。data_0data_0=lrt_tpalloc("FML","",lrt_Fadd32_fld()Bufferid。lrt_Fadd_fld(lrt_Fadd_fld((fbfr*)data_0,"id=8302","value=1000","len=4",TUXEDOTUXEDO协 编写技术指-1tpresult_inttpresult_int=lrt_tpcall("WITHDRAWAL",data_0,0,&data_0,&olen_2,FMLBufferFMLBuffer中的要提取的值保0。反之,返回一个负值。lrt_save32_fld_val((FBFR*)data_1,"name=ACCOUNT_ID",0,lrt_save32_fld_val((FBFR*)data_1,"name=ACCOUNT_ID",0, Buffer 777lr_eval_string("Thelr_eval_string("Therowcountis: TUXEDOTUXEDO协 编写技术指TUXEDO协议手工编写方CARRYCARRYBufferTUXEDOBuffer类型之一,其使用相对简TUXEDO变量与Buffer的Buffer实下面我们就是用一个实际项目的进行讲解#include#include{客户端TUXEDO安 staticchar*env_allow_array[]={,TUXEDO,TUXEDO协 编写技术指env_allow_array初始化,使客户端连接到目标服务器的TUXEDO应用上。其作用等同于TUXEDO函数tpinit(TUXEDOLRT_END_OF_PARAMS.tpresult_int=ERRORreturn}#include#includeTUXEDOTUXEDO协 编写技术指 Save_searc_string()BufferTUXEDOLoadrnnerlr_save_search_strig().voidsave_search_string(char*buf,char*leftBound,char*rightBound,{inti,j,k,intTmp,offsetA,offsetB;char*strTmpA;char*strTmpB;char*strTmpC;char*strTmpD;char*strPos;intTmp=strlen(buf)+if((strTmpA=(char*)malloc(intTmp*sizeof(char)))==NULL){lr_output_message("Insufficientmemoryavailable");}if((strTmpB=(char*)malloc(intTmp*sizeof(char)))==NULL){lr_output_message("Insufficientmemoryavailable");}if((strTmpC=(char*)malloc(intTmp*sizeof(char)))==NULL){lr_output_message("Insufficientmemoryavailable");}if((strTmpD=(char*)malloc(intTmp*sizeof(char)))==NULL){lr_output_message("Insufficientmemoryavailable");}i=strPos=(char*)strstr(buf,leftBound);if(strPos!=NULL){offsetA=(int)(strPos-}elseoffsetA=-TUXEDOTUXEDO协 编写技术指strPos=(char*)strstr(buf,rightBound);if(strPos!=NULL)offsetB=(int)(strPos-buf);elseoffsetB=-1;if((offsetA<0)||(offsetB<0)){sprintf(strTmpC,"%s_count",lr_save_string("0",strTmpC);}if(offsetA<memcpy(strTmpA,buf+offsetA+strlen(leftBound),offsetB-offsetA-strlen(leftBound));sprintf(strTmpA+offsetB-offsetA-strlen(leftBound),sprintf(strTmpC,"%s_%d",PreFix,i);lr_save_string(strTmpA,strTmpC);if(strlen(buf)>(offsetB+memcpy(strTmpB,buf+offsetB+strlen(rightBound),strlen(buf)-offsetB-strlen(rightBound));sprintf(strTmpB+strlen(buf)-offsetB-strlen(rightBound),}elsesprintf(strTmpB,}if(offsetA>memcpy(strTmpB,buf+offsetB+strlen(rightBound),strlen(buf)-offsetB-strlen(rightBound));sprintf(strTmpB+strlen(buf)-offsetB-strlen(rightBound),}while(strcmp(strTmpB,"")!=strPos=(char*)strstr(strTmpB,leftBound);if(strPos!=NULL)offsetA=(int)(strPos-strTmpB);elseoffsetA=-strPos=(char*)strstr(strTmpB,rightBound);if(strPos!=NULL)offsetB=(int)(strPos-strTmpB);elseoffsetB=-1;if((offsetA<0)||(offsetB<0)){sprintf(strTmpC,"%s_count",PreFix);sprintf(strTmpD,"%d",i);lr_save_string(strTmpD,strTmpC);TUXEDOTUXEDO协 编写技术指}if(offsetA<memcpy(strTmpA,strTmpB+offsetA+strlen(leftBound),offsetB-offsetA-strlen(leftBound));sprintf(strTmpA+offsetB-offsetA-strlen(leftBound),"\x0");sprintf(strTmpC,"%s_%d",PreFix,i);lr_save_string(strTmpA,strTmpC);sprintf(strTmpC,"%s_count",PreFix);sprintf(strTmpD,"%d",i);lr_save_string(strTmpD,strTmpC);if(strlen(buf)>(offsetB+ strlen(strTmpB)-offsetB-strlen(rightBound));sprintf(strTmpC+strlen(strTmpB)-offsetB-}
}elsesprintf(strTmpC,if(offsetA>memcpy(strTmpC,strTmpB+offsetB+strlen(rightBound),-offsetB-sprintf(strTmpC+strlen(strTmpB)-offsetB-}sprintf(strTmpB,"%s",}}{TUXEDOTUXEDO协 编写技术指longrecvLen=0;intTotalLen;sendBuf=lrt_tpalloc("CARRAY","",10000);recvBuf=lrt_tpalloc("CARRAY","",根据项目中相
sprintf(sendBuf,lr_eval_string("<?xmlversion=\"1.0\"?>\n" TUXEDOTUXEDO协 编写技术指开 事lrt_tpcall()s0110_dispatchTUXEDO应用用于接tpresult_int=lrt_tpcall("s0110_dispatch",(char*)sendBuf,TotalLen,(char**)&recvBuf,&recvLen,0);搜索接收Buffer中<RespMsg和</RespMsg字符间的字符串,并将结果保存在判断取出的字符串是否 成功,反之失败 成功lr_eval_stringRespondCode_1}")){}{
lr_end_transaction("查询历史余额_4882lr_end_transaction("查询历史余额_4882}TUXEDOTUXEDO协 编写技术指 lr_save_string("NULL",return}{{TUXEDOreturn0;}FML类型强大,灵活。FMLfml16位寻址,fml3232位寻址。TUXEDOTUXEDO协 编写技术指 ## 1234,在系统环境变量中添加两个变量 5FLELDTBLS(FLELDTBLS32)buffer6LDTBLDIR(FLDTBLDIR32)Bufferbuffer文件。TUXEDOTUXEDO协 编写技术指实FMLBufferFML文件创建过程省略#include#include{FLDTBLDIR32fml文件存放路径,FIELDTBLS32FML文staticchar*env_allow_array[]= *pFmlchardatalen[10];charcharval[16]; m,n, TUXEDOTUXEDO协 编写技术指 m=strlen(data);n=strlen("{m}");BufferpFml=(FBFR32*)lrt_tpalloc("FML32",0,4096);lrt_Finitialize32((FBFR32*)pFml)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行招聘测试题及答案
- 银行员工招聘试题及答案
- 银行业笔试题库及答案
- 保洁专业试题及答案
- 机械专业试题及答案
- 湖北省武汉市部分学校2026届高三上学期九月调研考试化学(含答案)
- 河北省衡水市桃城区2025-2026学年高二上学期暑假开学考试地理试卷
- 安徽省九师联盟2026届高三9月开学联考物理(含答案)
- 电力电子专业试题及答案
- 项目管理专业试题及答案
- 专业技术职务聘任呈报表(初级,双面打印)
- 肉牛养殖屠宰深加工项目建议书
- GB/T 40733-2021焊缝无损检测超声检测自动相控阵超声技术的应用
- 物业项目服务进度保证措施
- GB/T 18690.2-2017农业灌溉设备微灌用过滤器第2部分:网式过滤器和叠片式过滤器
- 河北省特种设备检验收费标准
- 集成电路技术导论课件
- 交管12123学法减分试题库带答案
- 培育和践行社会主义核心价值观的课件
- 交通标志牌工程施工组织设计(标准版)
- 全区建设工程质量检测人员岗位考试考核实施细则
评论
0/150
提交评论