版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
前本文檔描述了TUXEDO協(xié)議的基礎(chǔ)知識和編寫方法,旨在讓閱讀者能在短時間內(nèi)快速掌握簡單的TUXEDO協(xié)議的編寫方法。為以后同類型協(xié)議腳的開發(fā)提供參考與借鑒。本文檔不對Loadrunner基礎(chǔ)開發(fā)方法和TUXEDO中間件基礎(chǔ)知識做過多描述,初學者需要掌握基本的C語言知識。對于涉及本文中一些更次的技術(shù)性問題,請參考ATMI,Application-to-TransactionMonitorInterface,即“應(yīng)用事務(wù)監(jiān)視接口”,是TUXEDO系統(tǒng)的編程接口。他實現(xiàn)了X/Open組織定義的分布式事務(wù)處理(DTP)模型,為應(yīng)用程序提供命名、通信、隊列、事務(wù)和緩沖區(qū)管理等基礎(chǔ)服務(wù)。是一些空間,或者是內(nèi)存(IPC消息隊列,或在硬盤上。TUXEDO協(xié)議介TUXEDO簡TUXEDO是目前多層應(yīng)用開發(fā)中最為常用的協(xié)議之一,幾乎在目前比較優(yōu)秀的操作系統(tǒng)TUXEDO連接協(xié)議。TUXEDO協(xié)議通訊方式介①ClientSystem/TServer②Client根據(jù)找到的地址將請求發(fā)送到Server的消息隊列中③ServerClient/△訂閱與發(fā)布TUXEDOBuffer類型介
CARRAYbufferbufferVIEW(VIEW32:FML(FML32:FML類型buffer為自定義Buffer。其允許存取多個命名的字段。例如:(NAME:"BEA",ADDRESS"ChinaBeijing",PHONE" ")。每一個命名的字段可以在buffer中存放零個或個(occurrences)的值.TUXEDO協(xié)議函數(shù)說明及例說明:雖然這只是一個指針數(shù)組,但其作用非常重要。任何TUXEDO運行前staticstaticchar*env_allow_array[]=說明:此函數(shù)將*env_allow_array[]TUXEDO環(huán)境列表中。0數(shù)值。BufferBuffer的指針。反NULL值。data_0data_0=lrt_tpalloc("FML","",FML類型BufferFMLBuffer,需通過lrt_Fadd32_fld()Bufferid。-1FMLBufferFMLBuffer中的要提取的值保0。反之,返回一個負值。說明:釋放Buffer的內(nèi)存。777這個值保存到lr_eval_string("Thelr_eval_string("Therowcountis: TUXEDO協(xié)議手工編寫方CARRY類型CARRYBufferTUXEDOBuffer類型之一,其使用相對簡TUXEDO變量與Buffer的發(fā)送報文并接收返回#include#include{ 等信staticchar*env_allow_array[]={,,初始化,使客戶端連接到目標服務(wù)器的TUXEDO應(yīng)用上。其作用等同于TUXEDO函數(shù)tpinit()TUXEDOLRT_END_OF_PARAMS.tpresult_int=ERRORreturn}#include#includechar*sendBuf;char*TUXEDO必須調(diào)用的函數(shù)。Loadrunnerlr_save_search_string().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=-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);}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-strlen(rightBound),}sprintf(strTmpB,"%s",}}{longrecvLen=0;intTotalLen;sendBuf=lrt_tpalloc("CARRAY","",10000);recvBuf=lrt_tpalloc("CARRAY","",
sprintf(sendBuf,lr_eval_string("<?xmlversion=\"1.0\"?>\n" lrt_tpcall()s0110_dispatchTUXEDO應(yīng)用用于接tpresult_int=lrt_tpcall("s0110_dispatch",(char*)sendBuf,TotalLen,(char**)&recvBuf,&recvLen,0);搜索接收Buffer中<RespMsg和</RespMsg字符間的字符串,并將結(jié)果保存在",("{}"))=={}{
",",}return}{{TUXEDOreturn0;}FML強大,靈活。FMLfml16位尋址,fml3232位尋址。 ## 1234,在系統(tǒng)環(huán)境變量中添加兩個變量 5FLELDTBLS(FLELDTBLS32)buffer6LDTBLDIR(FLDTBLDIR32)Bufferbuffer文件。FML#include#include{FLDTBLDIR32fml文件存放路徑,F(xiàn)IELDTBLS32FML文staticchar*env_allow_array[]={ chardatalen[10];chardatal[32];charval[16]; m,n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年紅十字救護員理論考試及答案
- 全國青少年機器人技術(shù)等級考試(三級上機考試)模擬試題含答案
- 2025年安管人員考試題庫及答案
- 2025年農(nóng)村建設(shè)工匠考試題庫及答案
- 2025年工地三級安全教育試卷含答案
- 藥物過敏簡述試題及答案
- 2025年安全生產(chǎn)事故案例分析與警示教育安全應(yīng)急處理能力測試卷及答案
- 建設(shè)工程施工合同糾紛要素式起訴狀模板可直接打印使用
- 爬蟲技術(shù)路線規(guī)劃
- 生態(tài)教育2026年課程開發(fā)
- 殯儀館鮮花采購投標方案
- TOC基本課程講義學員版-王仕斌
- T-GDWCA 0035-2018 HDMI 連接線標準規(guī)范
- 面板堆石壩面板滑模結(jié)構(gòu)設(shè)計
- 初中語文新課程標準與解讀課件
- 無人機裝調(diào)檢修工培訓計劃及大綱
- 中建通風與空調(diào)施工方案
- 春よ、來い(春天來了)高木綾子演奏長笛曲譜鋼琴伴奏
- ARJ21機型理論知識考試題庫(匯總版)
- 2023年婁底市建設(shè)系統(tǒng)事業(yè)單位招聘考試筆試模擬試題及答案解析
- GB/T 4623-2014環(huán)形混凝土電桿
評論
0/150
提交評論