WEB开发网      濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌涘☉姗堝姛缂佺娀绠栭弻宥堫檨闁告挻姘ㄩ幑銏犫槈濞嗘劕顎撻梺鍛婂姇瀵爼骞栭幇顔炬/闁告挆鍕畬闂佸疇顫夐崹鍧楀箖閳哄啠鍋撻崷顓炐㈡い銉︾箞濮婂搫效閸パ€鍋撳Δ鍛;闁规崘顕ф闂佸憡娲﹂崹鎵不濞戙垺鐓曟い鎰剁稻缁€鍐┿亜鎼达紕效婵﹨娅g划娆忊枎閹冨闂備礁鎽滄慨鐢稿礉濞嗘劒绻嗛柣銏⑶圭粈瀣亜閺嶃劏澹橀柛鐐姂濮婃椽妫冨ù銈嗙⊕閹峰懘骞撻幒宥咁棜闂備礁婀遍崕銈夈€冮崱娑樼厱闁圭儤顨嗛悡鏇㈡煛閸ャ儱濡煎ù婊勭矋閵囧嫯绠涢敐鍛睄闂佸搫澶囬埀顒€纾弳鍡涙倵閿濆骸澧伴柡鍡欏█閺屟勫濞嗘垵鍩岄梺闈涙鐢帡锝炲┑瀣亗閹艰揪绲奸悽鑽ょ磽娴h娈曢柛銊ョ仢椤繒绱掑Ο璇差€撶紓浣圭☉椤戝懎鈻撻鐐╂斀妞ゆ梹鏋婚崗顒傜磼閻樿櫕宕岄柕鍡曠椤繈骞囨担鍏夋瀸濠电姷鏁告慨顓㈠磻閹捐秮褰掓晲閸モ斂鈧﹪鏌¢埀顒佺鐎n偆鍘藉┑鈽嗗灡椤戞瑩宕电€n兘鍋撶憴鍕仩闁稿氦绮鹃悘鍐⒑缂佹◤顏勵嚕閸洖鐤柣鎰暩绾惧ジ鏌涚仦鐐殤閺佸牓鎮楃憴鍕缂侇喖绻樿棟閻庨潧鎽滃Λ顖炴煙椤栧棔绀佹禒顕€鎮楀▓鍨灈闁绘牜鍘ч悾鐑芥偂鎼存ɑ顫嶅┑鈽嗗灟鐠€锕傛倵瀹曞洨纾介柛灞剧懅閸斿秵銇勯妸銉︻棞闁伙絾绻堥獮鏍ㄦ媴濮濆本鎲伴梻浣虹帛濡啴藟閹捐姹查悗锝庡枟閻撶喐淇婇妶鍌氫壕闂佺粯顨呭Λ妤呭煝閹炬緞鏃堝川椤旇瀚奸梺鑽ゅТ濞茬娀鍩€椤掑啯鐝柣蹇婂亾闂傚倷绀侀幖顐﹀箠閹邦厽鍙忛柟缁㈠枟閸嬧晠鏌i妶搴$仜濞存粌缍婇弻鐔兼倻濡偐鐣洪梺鍝勬噺缁诲牆顫忓ú顏咁棃婵炴垶鑹鹃。鍝勨攽閳藉棗浜濋柣鐔叉櫊閵嗕礁鈻庨幒鏃傛澑闂佸搫鍟崐濠氭儊閸儲鈷戞慨鐟版搐閻忓弶绻涙担鍐插椤╃兘鏌ㄩ弴鐐测偓褰掓偂閺囥垺鐓忓┑鐐茬仢閸斻倝鏌涢埡瀣ɑ妞ゃ劊鍎甸幃娆撳级閹存繍娼氭俊銈囧Х閸嬬偤鏁冮姀銈冣偓浣糕枎閹炬潙娈愰梺鍐叉惈椤戝洭鐛姀銈嗏拻闁稿本鐟︾粊鐗堛亜椤愩埄妲搁柣锝呭槻铻i柤娴嬫櫇閻撳顪冮妶鍡橆梿闁跨喆鍎茬粋宥堛亹閹烘挾鍘甸梺缁樺灦钃遍悘蹇e幖闇夋繝濠傚暟缁夌儤鎱ㄦ繝鍛仩缂佽鲸甯掕灒闁惧繘鈧稒顢橀梻鍌欑劍鐎笛兠哄澶婄柧婵炴垶绮庢禍閬嶆⒒娴e憡鍟炴繛璇х畵瀹曞綊鏌嗗鍛幈闂佺鎻梽鍕偂濞嗘挻鐓犳繛鏉戭儐濞呭懎霉閻樺磭鐭婇柍瑙勫灴閸ㄩ箖鎮欓挊澶夊垝闂備浇顕栭崰妤呫€冮崨鏉戠叀濠㈣埖鍔曠粻鎶芥煙閹屽殶鐟滄澘娲ㄧ槐鎾诲磼濞嗘垼绐楅梺鍝ュУ閻楃娀銆侀弽顓炲窛闁圭⒈鍘介弲锝夋⒑缁嬭法绠抽柛妯犲懏顐介柣鎰節缁诲棙銇勯弽銊х煂閻㈩垱绋掔换娑㈠川椤撶喎鏋犲┑顔硷功缁垶骞忛崨瀛樺仭闂侇叏绠戝▓婵堢磽閸屾瑦绁版い鏇嗗洤纾归柛顭戝櫘閸ゆ洜绱撴担璐細缂佲檧鍋撻梻浣规偠閸庮垶宕濆鍛瀺闁搞儺鍓氶埛鎴犵磼鐎n偄顕滄繝鈧幍顔剧<閻庯綆鍋呭畷宀€鈧娲忛崹浠嬪箖娴犲宸濆┑鐘插楠炴姊洪悷鏉挎倯闁伙綆浜畷瑙勭節濮橆剛鍘愰梺鍝勬储閸ㄦ椽鎮¢妷锔藉弿婵☆垰鐏濋悡鎰版煟閹捐泛鏋涢柣鎿冨亰瀹曞爼濡烽妷銉バ戠紓鍌欑椤戝牆鐣烽悽鍨潟闁圭儤姊荤壕鍏间繆椤栨繂浜归柣锝堟缁辨挻鎷呴搹鐟扮缂備浇顕ч悧鍡涙偩瀹勯偊娼ㄩ柍褜鍓氭穱濠傤潰瀹€濠冃ㄧ紓鍌欐祰妞村摜鎹㈤崼婵愭綎缂備焦蓱婵绱掑☉姗嗗剰婵炲牊鍔欏娲箹閻愭彃顬嗛梺鍛婎殔閸熷潡鎮鹃悜绛嬫晬闁绘劘灏欐鍥⒑閻熼偊鍤熷┑顕€娼ч埢鎾淬偅閸愨斁鎷虹紓鍌欑劍钃遍柍閿嬪浮閺屽秴鐣¢幍顔尖叺閻庢鍣崑濠傜暦閹烘鍊烽悗鐢登归獮鍫ユ⒒娴g懓鈻曢柡渚囧櫍瀹曟垿骞樼紒妯煎幐闂佸憡渚楅崰姘跺箠閸涱喕绻嗛柛娆忣槸婵洭鎽堕敐澶嬪仩婵炴垶甯掓晶鏌ユ煛閸屾浜鹃梻鍌氬€烽懗鍓佸垝椤栫偛绀夐柡鍥╁€i悢鍝ョ瘈闁搞儜鍐╁劒闂備胶绮弻銊╂儍濠靛缁╅柤鎭掑劘娴滄粓鏌¢崘銊﹀妞ゃ儱顦甸弻娑㈠棘鐠囨祴鍋撳┑瀣闁割偅娲橀崐鐑芥煟閹寸偍缂氶柛姗€浜跺娲传閸曨剙鍋嶉梺鍛婃煥閺堫剟寮查崼鏇ㄦ晬闁绘劕顕崢鍗炩攽閻愬弶顥滅紒缁樺笧缁粯绻濆顓犲幐闁诲繒鍋熼弲顐f櫏闁诲氦顫夊ú锕傚磻婵犲倻鏆﹂柣鏃傗拡閺佸棝鏌嶈閸撴瑩鍩㈠澶嬫櫜闁搞儮鏅濋敍婵囩箾鏉堝墽绋荤憸鏉垮暞缁傚秹鎮欓鍌滅槇闂侀潧楠忕徊鍓ф兜閻愵兙浜滈柟瀛樼箖瀹告繄绱掗鍓у笡闁靛牞缍佸畷姗€鍩¢崘銊ョ闂備浇顕х€涒晝绮欓幒鎴犲箵閻犳亽鍔庢稉宥嗘叏濡炶浜鹃梺鍝勮閸斿矂鍩ユ径濞㈢喐寰勯惂鍝ョɑ闁靛洤瀚版俊鎼佹晲閸涱厼袝闂備浇顕栭崰妤呮偡閳哄懌鈧線寮崼婵堫槹濡炪倖鎸荤换鍕矆閸曨垱鈷掗柛灞剧懄缁佺増銇勯弴鐔哄⒌鐎规洑鍗冲浠嬵敃閵堝浂妲稿┑鐘垫暩婵挳宕愭繝姘辈闁挎洖鍊归悡娆愩亜閺嶎偄浠滃ù婊呭娣囧﹪鎳犳0婵嗘闂佸疇顫夐崹鍧楀春閸曨垰绀冮柕濞у懌鍋″┑锛勫亼閸娿倝宕㈡ィ鍐ㄧ婵☆垯璀﹂崵鏇㈡偣閸ャ劎銈存俊鎻掔墦閺屾洝绠涢弴鐑嗘綌闂佸啿鎼幊蹇涙偂韫囨搩鐔嗛悹楦挎婢ф洟鏌涢弮鈧幐鎶藉蓟濞戙垹妫樻繛鍡欏亾妤旂紓鍌欐祰妞存悂骞愭繝姘闁告侗鍨抽惌娆撳箹鐎涙ɑ灏ù婊堢畺閺屾稑鈹戦崟顐㈠Б闂佹椿鍘介幐楣冨箟閹间焦鍋嬮柛顐g箘閻熴劑姊洪崫鍕靛剮缂佽埖宀稿濠氭偄閻撳海顦悷婊冪箳閺侇喖鈽夐姀锛勫幐闂佸憡渚楅崰妤呭磹閹扮増鐓涢悘鐐额嚙婵倿鏌熼鍝勨偓婵嗙暦閹烘垟妲堟慨妤€妫旂槐锟� ---闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌i幋锝呅撻柛濠傛健閺屻劑寮崼鐔告闂佺ǹ顑嗛幐鍓у垝椤撶偐妲堟俊顖氭惈缁犺鈹戦悙鍙夆枙濞存粍绮撻幃鈥斥槈閵忥紕鍘卞┑鐐村灥瀹曨剟鐛Ο姹囦簻闁哄倹瀵чˉ銏℃叏婵犲懏顏犻柟鐟板婵℃悂濡烽敂鎯х稈闂傚倷鑳堕幊鎾诲吹閺嶎厼绠柨鐕傛嫹
开发学院软件开发Java 如何使用 WebSphere MQ FTE Ant 与最佳实践 阅读

如何使用 WebSphere MQ FTE Ant 与最佳实践

 2010-06-18 00:00:00 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亜顒㈡い鎰Г閹便劌顫滈崱妤€骞婄紓鍌氬€瑰銊╁箟缁嬫鍚嬮柛顐線缂冩洟姊婚崒娆戭槮婵犫偓闁秵鎯為幖娣妼缁愭鏌″搴′簽濞戞挸绉甸妵鍕冀椤愵澀娌梺缁樻尪閸庣敻寮婚敐澶婂嵆闁绘劖绁撮崑鎾诲捶椤撴稑浜炬慨妯煎亾鐎氾拷闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴閵嗘帒顫濋敐鍛婵°倗濮烽崑娑⑺囬悽绋挎瀬闁瑰墽绮崑鎰版煙缂佹ê绗ч柍褜鍓﹂崣鍐潖閸濆嫅褔宕惰娴犲ジ姊虹拠鑼闁煎綊绠栭幃楣冩倻閽樺鎽曢梺闈涱檧婵″洭宕㈤悽鍛娾拺閻熸瑥瀚烽崯蹇涙煕閻樺磭澧甸柕鍡楀€圭缓浠嬪川婵犲嫬骞堥梺纭呭閹活亞妲愰弴鐔哄ⅰ闂傚倷绶氬ḿ褍煤閵堝洠鍋撳顐㈠祮闁绘侗鍣i獮鎺懳旈埀顒傜不閿濆棛绡€闂傚牊绋戦弳娆徝瑰⿰鍫㈢暫闁哄矉缍佹慨鈧柍鎯版硾濠€杈ㄧ珶閺囩喓绡€婵﹩鍘鹃崢鐢告⒑缂佹ê濮﹂柛鎾村哺閹ɑ娼忛妸銈囩畾闂佸湱绮敮鐐存櫠濞戞氨纾肩紓浣贯缚濞插鈧娲栧畷顒冪亙闂佸憡鍔曢崯鐘诲礈濠靛牊宕叉繛鎴炨缚閺嗗棗鈹戦悩杈厡闁轰焦鐗滅槐鎾存媴娴犲鎽甸梺鍦嚀濞层倝鎮鹃悜钘夌闁规惌鍘介崓鐢告⒑閻熸澘鎮侀柣鎺炵畵閹骞栨担鍏夋嫽婵炶揪绲块崕銈夊吹閳ь剟姊洪幖鐐测偓鏍偋閻樿崵宓侀煫鍥ㄧ⊕閺呮悂鏌ㄩ悤鍌涘濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌涘☉姗堟敾闁告瑥绻戦妵鍕箻閸楃偟浠肩紓浣哄閸ㄥ爼寮诲☉銏犵疀闂傚牊绋掗悘鍫ユ倵閻熺増鍟炵紒璇插暣婵$敻宕熼姘鳖啋闁诲酣娼ч幗婊堟偩婵傚憡鈷戠痪顓炴媼濞兼劖绻涢懠顒€鏋庢い顐㈢箳缁辨帒螣閼测晜鍤岄梻渚€鈧偛鑻晶顔肩暆閿濆牆鍔垫い锔界叀閹繝濡舵径瀣帾闂佸壊鍋呯换鍐磻椤忓懐绠剧€瑰壊鍠曠花濠氬箚閻斿吋鈷戦悗鍦У閵嗗啴鏌ら崘鑼煟鐎规洘绻堥弫鍐焵椤掑嫧鈧棃宕橀鍢壯囨煕閳╁喚娈橀柣鐔稿姍濮婃椽鎮℃惔鈩冩瘣闂佺粯鐗曢妶绋跨暦閻戞ḿ绡€闁搞儜鍐ㄧギ闂備線娼ф蹇曟閺囥垹鍌ㄦい蹇撶墛閳锋垿鏌熼懖鈺佷粶闁告梹顨婇弻锟犲川椤旈敮濮囩紓浣稿€圭敮鐔妓囩€靛摜纾奸弶鍫涘妼缁楁碍绻涢悡搴g闁糕斁鍓濋幏鍛存煥鐎e灚缍楅梻鍌氬€峰ù鍥ь浖閵娾晜鍊块柨鏇炲€哥粻鏌ユ煕閵夘喖澧柡瀣╃窔閺岀喖宕滆鐢盯鏌¢崨顔藉€愰柡灞诲姂閹倝宕掑☉姗嗕紦闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亜顒㈡い鎰Г閹便劌顫滈崱妤€骞婄紓鍌氬€瑰銊╁箟缁嬫鍚嬮柛顐線缂冩洟姊婚崒娆戭槮婵犫偓闁秵鎯為幖娣妼缁愭鏌″搴′簽濞戞挸绉甸妵鍕冀椤愵澀娌梺缁樻尪閸庣敻寮婚敐澶婂嵆闁绘劖绁撮崑鎾诲捶椤撴稑浜炬慨妯煎亾鐎氾拷  闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌i幋锝呅撻柛銈呭閺屻倝宕妷锔芥瘎婵炲濮靛銊ф閹捐纾兼繛鍡樺笒閸橈紕绱撴笟鍥ф珮闁搞劌鐖兼俊鎾礃椤旂厧绐涢梺鍝勵槹閸ㄥ綊宕㈠ú顏呭€垫鐐茬仢閸旀碍銇勯敂璇茬仸鐎规洩绻濋獮搴ㄦ嚍閵壯冨妇闂傚⿴鍋勫ú锕€煤閺嶃劎澧¢梻鍌欐祰椤曆呪偓鍨浮瀹曟粓鎮㈡總澶嬬稁闂佹儳绻愬﹢杈╁閸忛棿绻嗘い鏍ㄧ閹牊銇勯銏⑿㈡い顏勫暣婵″爼宕卞Δ鈧~搴ㄦ⒑閸涘⿴鐒奸柛銉戝懎寮ㄥ┑鐘灱濞夋稖鐧岄梺缁樻煥閸氬鎮¢妷鈺傚€甸柨婵嗛閸樻挳鏌涚€n偅灏扮紒缁樼箓椤繈顢樺☉娆忣伖闂佽崵鍠愮划搴㈡櫠濡ゅ啯鏆滈柟鐑樻尵椤╂彃霉閻撳海鎽犻柣鎾存礋閺岀喖骞嗚閸ょ喖鏌嶉挊澶樻█闁哄苯绉剁槐鎺懳熼懡銈呭汲婵$偑鍊ら崑鍛崲閸儱绠犳繝濠傛噹閺嬪牊淇婇婵愬殭妞ゅ繐缍婂濠氬磼濞嗘埈妲梺纭咁嚋缁辨洜鍒掑▎鎾崇闁挎柨鎼禍濂告⒑閸濆嫷妲归柛銊у枛瀵悂寮崼鐔哄幐闂佸憡鍔х徊鑺ョ閸撗呯=濞达綀娅g敮娑氱磼鐎n偅灏扮紒鍌涘浮閺佸啴宕掑鎲嬬床婵犳鍠楅敃鈺呭礈閿曞倹鍊甸柟鎯板Г閳锋帒霉閿濆懏鎲搁柨娑樼Ф缁辨帡顢氶崨顓犱桓濡ょ姷鍋為崹鍨暦閸洦鏁嗛柛灞炬皑閵堬箓姊虹拠鎻掑毐缂傚秴妫欑粋宥夊冀椤撶偟鍝楁繛瀵稿Т椤戝棝鎮″▎鎾粹拺妞ゆ挶鍔庨悾鍗烆熆瑜滈崹閬嶅Φ閸曨垰妫橀柛顭戝枓閸嬫挾鎲撮崟顓涙敵婵犵數濮村ú锕傚磹闁垮浜滈煫鍥ㄦ尭椤忋倝鏌涚€n偅宕岀€殿喖鈧噥妾ㄥ┑鐐插悑閻楁洟鍩為幋锔藉亹閻庡湱濮撮ˉ婵嬫⒑缁嬭儻顫﹂柛鏂块叄楠炲顫㈠畝鈧悿鈧┑鐐村灦宀e潡鎮块崨瀛樷拺闁革富鍙€濡炬悂鏌涢悩鎰佹疁鐎殿喗鐓¢獮鏍ㄦ媴閸︻厼寮抽梻浣虹帛濞叉牠宕愰崷顓涘亾濮樼偓瀚�
核心提示:开始之前关于本教程本教程详细地介绍了 IBM WebSphere MQ FTE 所提供的 Ant 功能以及相关命令与任务,并结合具体实例,如何使用 WebSphere MQ FTE Ant 与最佳实践,演示如何基于 Eclipse 平台开发 Ant 脚本以实现更强大的文件传输功能,最后提出开发 FTE Ant 任务脚本

开始之前

关于本教程

本教程详细地介绍了 IBM WebSphere MQ FTE 所提供的 Ant 功能以及相关命令与任务,并结合具体实例,演示如何基于 Eclipse 平台开发 Ant 脚本以实现更强大的文件传输功能,最后提出开发 FTE Ant 任务脚本的最佳实践。

目标

希望读者通过本教程,能够了解:

WebSphere MQ FTE 中所提供的 Ant 功能;

基于 Eclipse 开发 FTE Ant 任务脚本;

使用 FTE Ant 的最佳实践

先决条件

本教程要求读者了解 WebSphere MQ、WebSphere MQ FTE 以及 Apache Ant 的基本概念、基本功能和基本操作步骤。

前言

IBM WebSphere MQ File Transfer Edition(简称 MQFTE)结合 WebSphere MQ 的消息传输解决方案,提供了受管的文件传输功能,实现了消息传输平台与文件传输平台的完美统一,逐步成为信息传输领域的主流解决方案。MQFTE 的一个重要扩展是与 Apache Ant 的有效集成,通过使用 Ant 脚本,MQFTE 能够利用可解读的脚本语言执行更为复杂的文件传输任务,因此丰富和扩展了 MQFTE 文件传输的集成能力和覆盖面。

WebSphere MQ FTE Ant 功能介绍

Ant 简介

Another Neat Tools (Ant) 是一种基于 java 的 build 工具。理论上来说,它类似于(Unix)C 中的 make ,但又有所不同,Ant 运行时需要 XML 格式的文件不是 Shell 命令文件。通常情况下,用户使用 Ant 来构建 java 程序,包括类库、.jar 文件、.war 文件等等。Ant 脚本是 XML 文件,其中包含许多步骤的任务,例如创建文件夹、调用 java 编译器、传递编译参数等工作。

Ant 是 Apache 软件基金会 JAKARTA 目录中的一个子项目,Ant 是纯 java 语言编写的,所以具有很好的跨平台性,并且 Ant 操作简单,它由一个内置任务和可选任务组成的,运行时只需要一个 XML 文件 ( 构建文件 )。 Ant 通过调用 target 树,就可以执行各种 task。每个 task 实现了特定接口对象。由于 Ant 构建文件是 XML 格式的文件,所以很容易维护和书写,而且结构很清晰。由于 Ant 的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去。关于 Ant 的更详细介绍请参与参考 [1]。

WebSphere MQ FTE Ant 功能概述

MQFTE 的一个重要扩展是与 Apache Ant 的有效集成,基于 MQFTE 平台,用户通过使用 Ant 脚本,利用可解读的脚本语言来执行更为复杂的文件传输任务,通常每个任务的执行都依赖于之前的任务执行情况,这是受管文件传输中非常普遍的需求。基于 Apache Ant 的可扩展性,FTE Ant 扩展了 Ant 的功能,它创建出符合 MQFTE 可解读的消息并提交给 FTE 代理,用于执行复杂的文件传输任务,如图 1 所示。

图 1 FTE Ant 架构

如何使用 WebSphere MQ FTE Ant 与最佳实践

查看原图(大图)

FTE Ant 任务

FTE 提供了如表 1 所示的 Ant 任务,用户可以使用这些任务实现文件传输功能。

表 1:FTE Ant 任务列表

任务名称任务描述
awaitoutcome 等待 filecopy,filemove 或者 call 操作结束
call向代理发送调用请求,代理会基于请求内容执行相关命令或程序,并返回结果。
cancel 取消受管文件传输任务(filecopy 或 filemove)或者调用请求 (call)
filecopyFilecopy 在 MQ FTE 代理之间拷贝文件,源文件不被删除
filemoveFilemove 在 MQ FTE 代理之间移动文件,当源文件被成功地转移到目的地后,源文件被删除。
ignoreoutcome 忽略 filecopy、filemove 或 call 命令的执行结果。当用 defer 方式指定 filecopy、filemove 或 call 命令时,Ant 任务会分配特定资源来跟踪这些命令的执行结果,当不再需要这些执行结果时,使用 ignoreoutcome 任务释放资源。
ping用于判断当前代理是否能够处理文件传输任务
uuid产生任意随机标识,并赋予某些属性,例如可以用该标识产生作业名。

FTE Ant 命令

FTE Ant 功能提供了一个强大的命令 fteant,在 MQFTE 环境下运行 Ant 脚本,执行复杂的文件传输任务。与标准的 Ant 命令不同,fteant 需要实现定义 Ant 脚本文件。Fteant 的重要参数包括如表 2 所示:

表 2:fteant 命令参数

参数名称是否必选说明
-debug 或 -d 产生调试输出
-quiet 或 -q 产生最少输出
-verbose 或 -v 产生详细输出
-keep-going 或 -k 执行所有不依赖于失败任务的所有任务
-D( 属性名 )=( 属性值 ) 指定某些属性的属性值,该属性值具有最高优先权
-propertyfile 属性文件,包含执行该任务的属性值定义
-f(Ant 任务脚本 ) 指定需要运行的 Ant 任务脚本文件

例如命令形式:

fteAnt -f FTECOPYPrePostSamp.xml -DDSTFILE=\tmp\MyFile4.txt -DjobName=myTestjob

表示执行 Ant 任务脚本 FTECOPYPrePostSamp.xml,并设置其中的两个属性 DSTFILE 和 jobName 为特定的属性值。

WebSphere MQ FTE Ant 开发与最佳实践

WMQ FTE Ant 开发环境配置

下文将详细介绍如何使用 MQ FTE 资源管理器开发 Ant 脚本。

打开 MQ 资源管理器,选择“窗口”菜单,选择“首选项”,在左侧列表中选择“WebSphere MQ 资源管理器”,将启动模式修改为“在 Eclipse 工作台中”。

在首选项左侧列表中选择“常规”— >“编辑器”->“文档关联”,在右侧选择“添加”,如图 2 所示:

图 2 文件关联
如何使用 WebSphere MQ FTE Ant 与最佳实践

在对话框中填入“*.xml”,并选择确定;

在相关联的编辑器中选择“Ant 编辑器”,并选择“缺省值”,并选择“确定”如图 3 所示。

图 3 Ant 编辑器
如何使用 WebSphere MQ FTE Ant 与最佳实践

重新启动 MQ 资源管理器,选择“打开视图”按钮,选择“资源”,选择“确定”。

在首选项左侧列表选择“Ant”— >“运行时”,选择“全局条目”,选择“添加外部 JAR”,如图 4 所示:

图 4 Ant 运行时
如何使用 WebSphere MQ FTE Ant 与最佳实践

浏览至 <MQFTE INSTALL DIRECTORY>/lib 目录,将其下的所有 .jar 文件选中,选中“打开”,其中 <MQFTE INSTALL DIRECTORY> 为 MQFTE 的安装目录。

选择“Ant 主目录”,浏览至 <MQFTE INSTALL DIRECTORY>/ant 目录,选择“确定”。

设置环境变量 FTEAnt_HOME 为 <MQFTE INSTALL DIRECTORY>/ant,FTEAnt_WMQ_HOME 为 <MQ INSTALL DIRECTORY> 变量,其中 <MQ INSTALL DIRECTORY> 为 MQ 的安装目录 。

使用 ftepingagent 命令测试各个代理是否活动,如图 5 所示。

图 5 ftepingagent 命令
如何使用 WebSphere MQ FTE Ant 与最佳实践

FTE Ant 任务样例

下面描述如何使用 FTE Ant 功能来执行文件传输任务。

简单文件传输

使用在上文中配置好的 WMQFTE Ant 开发环境创建项目,并创建 Ant 文件 testsample.xml,在该文件的前端会出现 Ant 文件标识,将如下文件拷贝到 testsample.xml 中:

代码 1:testsample.xml

 <?xml version='1.0'?> 
 <project xmlns:fte="antlib:com.ibm.wmqfte.ant.taskdefs" name="testsample" 
 default="job" basedir="." > 
 <target name="step1" description="Transfer file"> 
   <fte:filecopy cmdqm="C_QM" 
    src="A1@A1_QM" dst="A2@A2_QM" 
    outcome="await" 
    jobname="testsample" 
    rcproperty="step1.result"> 
  <fte:metadata> 
  <fte:entry name="departId" value="Demo" /> 
  </fte:metadata> 
   <fte:filespec srcfilespec="E:\fileinput\WMQSS_Securing_WMQFTEV70.pdf" 
    dstfile="E:\fileoutput\transfered_file.pdf" overwrite="true"/> 
   </fte:filecopy> 
  </target> 
 <target name="job" depends="step1" />  
 </project> 

其中 project 可以包含一个或多个 target,一个 target 可以依赖于其他的 target。target 中调用 Tasks,例如在上面例子中,名为“step1”的 target 中包含的 Tasks 为 “filecopy”,其中相关参数请参阅参考资料 [6]。

在 testsample 文件上点击右键,选择“运行方式”,选择“Ant 构建”,在 console 视图中显示该 Ant 任务执行结果输出,如图 6 所示:

图 6 文件传输 console 输出
如何使用 WebSphere MQ FTE Ant 与最佳实践

查看原图(大图)

启动 WMQ FTE 图形管理界面,如图 7 所示,有一条与 filecopy 任务相对应的记录出现:

图 7 filecopy 任务记录
如何使用 WebSphere MQ FTE Ant 与最佳实践

查看原图(大图)

多功能文件传输任务

在上述简单文件传输 Ant 任务基础之上,定义具有更多功能特征的 Ant 文件传输任务。下面将实现一个特定的文件传输任务:

1 .在文件传输之前,Ant 任务调用源文件所在系统的命令“netstat – n”,检查源系统的端口使用情况;

2 .执行文件传输任务,并在被传输的文件名前面加上文件发送的日期标记;

3 .在文件落地之后,执行目标文件所在系统的命令“netstat – n”,检查目标系统的端口使用情况;

配置过程如下。

修改源系统与目标系统上代理属性配置文件。打开发送代理与接收代理的属性配置文件 <config_directory>\config\<coordination_QMgr_name>\agents \<agent_name>\agent.properites,添加如下所示属性定义:

 commandPath=C:\\WINDOWS\\system32; 
 maxCommandOutput=204800 
 maxDestinationTransfers=8 
 maxSourceTransfers=8  

netstat 命令位于“c:\WINDOWS\system32”目录下,保存并关闭该文件。

按照如下模式编写 Ant 文件传输脚本:

代码 2:多功能文件传输脚本

 <?xml version='1.0'?> 
 <project xmlns:fte="antlib:com.ibm.wmqfte.ant.taskdefs" 
 name="SimpleTransfer" default="job" basedir="." > 
 <description> Complex FTE file Transfer with datestamp file name, 
  pre and post program invocations </description> 
 
 <!-- Target:init。定义一系列全局变量;用 ${timestamp} 获取当前日期函数,作为文件名 --> 
 <target name="init" description="Set Global variables"> 
 <tstamp> 
  <format property="timestamp" pattern="yyyyMMdd" /> 
 </tstamp> 
 <property name="srcfile" value="e:\fileinput\File.txt" /> 
 <property name="dstfile" value="e:\${timestamp}_File.txt" /> 
 <property name="SNODE" value="A1@A1_QM"/> 
 <property name="DNODE" value="A2@A2_QM"/> 
 <property name="cmdqm" value="C_QM"/> 
 <property name="jobName" value="Complex file transfer" /> 
 <property name="departId" value="IBM service" />  
 </target> 
 
 <!--Target:step1. 定义任务 filecopy; 定义事先处理任务 fte:presrc; 定义事后处理任务 fte:postdst --> 
 <target name="step1" depends="init" description="Transfer file"> 
   <fte:filecopy cmdqm="${cmdqm}" 
    src="${SNODE}" dst="${DNODE}" 
    outcome="await" 
    jobname="${jobName}" 
    rcproperty="step1.result"> 
  <fte:metadata>  
  <fte:entry name="departId" value="${departId}" /> 
  <fte:entry name="jobName" value="${jobName}" /> 
  </fte:metadata> 
   <fte:filespec srcfilespec="${srcfile}" dstfile="${dstfile}" 
 overwrite="true"/> 
  <fte:presrc command="netstat" successrc="0"> 
  <fte:arg value="-n" /> 
  </fte:presrc> 
  <fte:postdst command="netstat" successrc="0"> 
  <fte:arg value="-n" /> 
  </fte:postdst> 
   </fte:filecopy> 
  </target> 
 
 <!--Target:check1. 定义文件传输结果判断条件 ; 定义输出文件传输结论;--> 
 <target name="check1" depends="step1" description= 
"Check return code and set variables"> 
 <condition property="step1-failed"> 
  <not> 
  <equals arg1="${step1.result}" arg2="0" /> 
  </not> 
 </condition> 
 <fail if="step1-failed" 
 message="step1 transfer failed MAXRC=${step1.result}."> 
 </fail> 
 <echo message="The FTE transfer was successfull!" /> 
 </target> 
 
 
 <!--Target:job. 定义 job, 确定 target 之间的依赖关系 --> 
 <target name="job" depends="init, step1,check1" />  
 </project> 

右键选择“运行方式”,选择“Ant 构建”,控制台输出如下信息:

 init: 
 step1: 
 [fte:filecopy] BFGAN0046I: 正在发出要将文件从“A1@A1_QM”复制到“A2@A2_QM”的请求。 
 [fte:filecopy] BFGAN0048I: 
  已对复制操作分配传输标识 414d5120435f514d2020202020202020dafb184b20005e03。 
 [fte:filecopy] BFGAN0050I: 
  复制操作 414d5120435f514d2020202020202020dafb184b20005e03 成功完成。 
 check1: 
   [echo] The FTE transfer was successfull! 
 job: 
 BUILD SUCCESSFUL 
 Total time: 1 second 

打开 MQFTE 管理控制台传输日志,显示文件传输日志,其中包括事先处理与事后处理的命令信息,如图 8 所示。

图 8 复杂文件传输结果
如何使用 WebSphere MQ FTE Ant 与最佳实践

查看原图(大图)

在“[preSourceCall] c:\WINDOWS\system32\netstat.exe”上右键,并选择属性,即可看到在源系统上的事先处理命令“netstat -n”的执行结果,如图 9 所示。同理也可查看事后处理结果。


图 9 事先处理结果
如何使用 WebSphere MQ FTE Ant 与最佳实践

检查文件输出目录,被传输文件名已经改为 20091207_File.txt。

WMQ FTE Ant 开发调试

Eclipse 平台提供了 Ant 任务脚本的调试工具,通过添加断点,执行任务脚本的跟踪与调试。如图 10 所示,在需要调试的脚本处右键,选择“添加断点”。

图 10 Ant 任务脚本添加断点
如何使用 WebSphere MQ FTE Ant 与最佳实践

在 Ant 编辑界面中右键,选择“调试方式”,选择“Ant 构建”,即可进入 Ant 的脚本调试状态,如图 11 所示。

图 11 Ant 任务脚本调试
如何使用 WebSphere MQ FTE Ant 与最佳实践

查看原图(大图)

FTE Ant 最佳实践

MQ FTE Ant 功能为文件传输领域提供了更大的灵活性,在定义 Ant 任务脚本过程中,经过探索与比较,建议用户采用下面几条最佳实践建议。

使用 init 任务初始化全局属性与变量

使用 init 任务来初始化全局属性与变量,使之后的脚本文件引用全局变量与属性,可以提高脚本修改效率。通常情况下,init 任务放在脚本的最前端,并设置变量缺省值,并使用 tstamp 函数获取脚本执行时间点。在 Ant 脚本编写过程中,建议将 init 任务与具体 Ant 任务结合起来,定义为通用 Ant 任务“模板”,通过更改 init 部分的变量,即可修改整个 Ant 任务定义。例如以下代码所示:

代码 3:定义全局属性与变量

 <target name="init" description="Set Global variables"> 
 <tstamp> 
  <format property="timestamp" pattern="yyyyMMdd" /> 
 </tstamp> 
 <property name="srcfile" value="e:\fileinput\File4.txt" /> 
 <property name="dstfile" value="e:\${timestamp}_File4.txt" /> 
 <property name="SNODE" value="A1@A1_QM"/> 
 <property name="DNODE" value="A2@A2_QM"/> 
 <property name="cmdqm" value="C_QM"/> 
 <property name="jobName" value="Complex file transfer" /> 
 <property name="departId" value="IBM service" />  
 </target> 
 
 <target name="step1" depends="init" description="Transfer file"> 
   <fte:filecopy cmdqm="${cmdqm}" 
    src="${SNODE}" dst="${DNODE}" 
    outcome="await" 
    jobname="${jobName}" 
    rcproperty="step1.result"> 
  <fte:metadata>  
  <fte:entry name="departId" value="${departId}" /> 
  <fte:entry name="jobName" value="${jobName}" /> 
  </fte:metadata> 
  … … … … 

使用“条件”任务

在 Ant 任务脚本中加入对任务执行结果的判断条件,以此作为下一步操作的基础。例如下面代码所示,在 target check1 中,对 step1 的返回结果进行判断,判断该返回值是否为 0。

代码 4:定义“条件”任务

 <condition property="step1-failed"> 
  <not> 
   <equals arg1="${step1.result}" arg2="0" /> 
 </not> 
  </condition> 

调用“fail”函数

在 Ant 脚本中加入错误处理部分,即调用 Ant 的 fail 函数,例如下面代码所示:

代码 5:定义“fail”函数

 <fail if="step1-failed" 
 message="step1 transfer failed MAXRC=${step1.result}."> 
  </fail> 

总结

本文介绍了 WebSphere MQ File Transfer Edition 7.0 所提供 Ant 功能,并以此实现了简单、复杂文件传输任务,并描述了 Ant 任务脚本开发的环境配置、跟踪调试与最佳实践,为基于 WMQ FTE 实现大文件传输提供技术参考。

Tags:如何 使用 WebSphere

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接