前面講了那么多MB的原理和配置,這一篇blog開(kāi)始正式講講我個(gè)人學(xué)MB的感受。“假如時(shí)間可以重來(lái)”,我會(huì)怎樣利用手頭的資源,以最快的速度入手。
體驗(yàn)MB
在安裝完WMBT之后,會(huì)出現(xiàn)“歡迎”(這個(gè)也是eclipse
環(huán)境安裝后都會(huì)有的東西,你也可以在“幫助”->“歡迎”里面找到),里面有不少很淺顯的例子,讓你對(duì)MB是如何工作的有個(gè)感性認(rèn)識(shí)。強(qiáng)烈建議把里面的“入門(mén)”部分看完。
學(xué)習(xí)開(kāi)發(fā)
看完“入門(mén)”后,重點(diǎn)就應(yīng)該放在“樣例”中。在樣例庫(kù)里面,有數(shù)十個(gè)基礎(chǔ)的樣例,每個(gè)樣例都針對(duì)某類(lèi)
節(jié)點(diǎn),比如消息映射、
JMS、
數(shù)據(jù)庫(kù)操作、Webservice調(diào)用,等等。那么多的例子,當(dāng)然不可能一下子看完,而且對(duì)于一張白紙的新手,里面有些基礎(chǔ)知識(shí)還不懂,我的建議是:結(jié)合之前提到的那本書(shū)《精通Websphere Message Broker》,看完一方面的內(nèi)容,比如
數(shù)據(jù)庫(kù)操作,你就可以打開(kāi)“樣例庫(kù)”,將里面的數(shù)據(jù)庫(kù)樣例導(dǎo)入至WMBT,然后看看其中的ESQL代碼、相關(guān)節(jié)點(diǎn)的設(shè)置,等等。一開(kāi)始會(huì)比較枯燥,而且讓這些樣例跑起來(lái)也不是件容易的事情,但堅(jiān)持下去就會(huì)慢慢體會(huì)到其中的樂(lè)趣了。
掌握Debug利器
一般來(lái)說(shuō),WMBT會(huì)自動(dòng)幫你配置好樣例
程序運(yùn)行所需的環(huán)境(比如創(chuàng)建隊(duì)列
管理器、數(shù)據(jù)庫(kù),等等),然后將樣例
部署到MB的執(zhí)行組中。這一切都是自動(dòng)完成的,但有時(shí)候出于各種原因,試運(yùn)行樣例的時(shí)候不能得到預(yù)期的結(jié)果。首先排除掉打包和部署時(shí)的錯(cuò)誤,因?yàn)闃永绦虻脑创a通常是沒(méi)有問(wèn)題的,那么余下的問(wèn)題就只能靠debug來(lái)
解決了。另一方面,當(dāng)你看了書(shū)之后,對(duì)InputRoot、Environment、ExceptionList這些東西的結(jié)構(gòu)、細(xì)節(jié)肯定會(huì)很好奇,但是書(shū)中提到的很少很零散,最好的方法就是在debug模式下,讓消息流掛起在某一點(diǎn),然后你再慢慢瀏覽其中的各類(lèi)變量,很多東西都不言自明了。用
IBM工程師的話說(shuō),就是“沒(méi)有debug就根本沒(méi)法學(xué)會(huì)MB”。為什么?相關(guān)
資料太少了,去google有時(shí)候還不如直接問(wèn)MB自己,所以也是很考驗(yàn)?zāi)愕淖詫W(xué)能力的。
配置debug環(huán)境
這些內(nèi)容在《精通》那本書(shū)中都有講到,只是比較粗略,我在這里補(bǔ)充我個(gè)人的
經(jīng)驗(yàn)。
首先右鍵單擊某個(gè)執(zhí)行組,“屬性”,在“JVM調(diào)試端口”中輸入一個(gè)tcp端口號(hào),不要和其他程序沖突就行,假設(shè)9090。再次右鍵執(zhí)行組,“調(diào)試”->“啟用調(diào)試9090”。然后,切記,重啟執(zhí)行組所在的
broker
重啟后,把bar
文件部署到該執(zhí)行組,然后進(jìn)入“debug”視圖,找到下圖右下角的那個(gè)按鈕:
如果是該按鈕是紅色的,說(shuō)明debug守護(hù)程序沒(méi)有啟動(dòng);如果是綠色的,鼠標(biāo)移過(guò)去,會(huì)顯示“debug守護(hù)程序正在監(jiān)聽(tīng)XX端口”,需要注意的是,這里的端口可不是之前在執(zhí)行組設(shè)置的端口,剛好相反,必須和之前的9090不同。單擊旁邊的下拉箭頭,可以啟動(dòng)或者更改守護(hù)程序的端口,這里改為9099,不必重啟。
接下來(lái),就和一般的eclipse調(diào)試一樣了,在綠色的小昆蟲(chóng)按鈕設(shè)置debug參數(shù)。新建一個(gè)debug,注意這里的“java調(diào)試端口”則必須與執(zhí)行組的一致,你也可以“選擇執(zhí)行組….”,
系統(tǒng)會(huì)根據(jù)你選擇的執(zhí)行組,自動(dòng)設(shè)置端口
然后,在“源”選項(xiàng)卡中,添加你要調(diào)試的項(xiàng)目。確定之后,就可以運(yùn)行debug了。
What next?
debug配置成功后,就開(kāi)始慢慢研究那些樣例吧,按照之前我說(shuō)的思路,“書(shū)本+樣例”,按照每個(gè)人自己的學(xué)習(xí)習(xí)慣和項(xiàng)目開(kāi)發(fā)的需要,將你要學(xué)習(xí)的樣例,一步步調(diào)試過(guò)去,看看每條ESQL語(yǔ)句的結(jié)果,很快的你就知道其中的運(yùn)行機(jī)理了。
小結(jié)
由于MB不能像java那樣,輸出東西到
控制臺(tái),只能輸出到
日志文件,而且還得寫(xiě)一堆語(yǔ)句,或者配置trace節(jié)點(diǎn),很麻煩,所以傳統(tǒng)的在程序中插入輸出語(yǔ)句的方式在這里沒(méi)太大意義。很多情況下,要依靠debug來(lái)觀察消息流執(zhí)行過(guò)程中消息的變化,來(lái)決定bug的所在。