BEA WebLogic Server 9.0新增了大量java Message Service(JMS)功能和增強(qiáng)。可分為兩大類:針對(duì)治理員的更改,比如JMS資源、新增的存儲(chǔ)和轉(zhuǎn)發(fā)功能以及全新的持久性存儲(chǔ)子系統(tǒng);針對(duì)開(kāi)發(fā)人員的更改,比如JMS 1.1支持、Unit-of-Order增強(qiáng)以及消息驅(qū)動(dòng)bean方面的改進(jìn)。本文從專業(yè)的角度介紹了對(duì)任何要移植到WebLogic Server 9.0的開(kāi)發(fā)團(tuán)隊(duì)都會(huì)產(chǎn)生影響的要害性更改。
在WebLogic Server 9.0出現(xiàn)之前,像隊(duì)列和主題這樣的JMS資源只能連接到特定的JMS服務(wù)器上。即便在控制臺(tái)中也是這樣:控制臺(tái)中的隊(duì)列和主題都被視為單個(gè)JMS服務(wù)器的分支。JMS資源是由WebLogic治理員在應(yīng)用程序部署之前創(chuàng)建的。這在WebLogic Server 9.0中有了根本改變。
BEA WebLogic Server 9.0引入了一個(gè)控制臺(tái)應(yīng)用程序,它答應(yīng)JMS治理員查看目的地內(nèi)容,并創(chuàng)建新消息或刪除執(zhí)行中的消息。這項(xiàng)特性本身就足以使您升級(jí)到WebLogic Server 9.0!圖2展示了示例隊(duì)列中執(zhí)行中的消息。
BEA WebLogic Server 9.0為開(kāi)發(fā)人員設(shè)計(jì)了一些非常有趣的新特性,包括對(duì)JMS 1.1的支持、Unit-of-Order功能、MDB增強(qiáng)和基于XML的消息傳遞。在使用WebLogic Server 9.0時(shí)應(yīng)牢記,您無(wú)需為了使應(yīng)用程序在WebLogic Server 9.0中運(yùn)行而更改JMS代碼,除非您要使用新特性。
具有遺留系統(tǒng)的組織經(jīng)常發(fā)現(xiàn)有些消息傳遞是依靠于順序的。過(guò)去(在J2EE出現(xiàn)之前)只有一個(gè)消息消費(fèi)者時(shí),順序不是問(wèn)題,但出現(xiàn)了MDB和集群之后,這就成為人們面臨的一項(xiàng)巨大挑戰(zhàn)。WebLogic Server 9.0提供了Unit-of-Order功能,部分地解決了這一問(wèn)題。這項(xiàng)功能尤其適用于來(lái)自同一生產(chǎn)者的一組信息必須順序處理的情況。
WebLogic Server 9.0中的消息驅(qū)動(dòng)bean(MDB)工具進(jìn)行了重要的改進(jìn)。一些增強(qiáng)尤為突出,排在前三位的增強(qiáng)處理的是消息循環(huán)問(wèn)題——MDB容器試圖交付消息,交付失敗,消息回滾,容器重試……無(wú)限循環(huán)。
BEA在WebLogic Server 8.1中引入了一個(gè)XML消息類型擴(kuò)展,并在WebLogic Server 9.0中對(duì)其進(jìn)行了增強(qiáng)。weblogic.jms.extensions.XMLMessage實(shí)現(xiàn)了javax.jms.TextMessage接口,并公開(kāi)了與org.w3c.dom.Document對(duì)象一起傳送的setDocument()和getDocument()方法。該擴(kuò)展是很有價(jià)值的,但假如您接合的是非WebLogic系統(tǒng),那么情況可能有所不同。 結(jié)束語(yǔ)
WebLogic Server 9.0中的新特性為數(shù)眾多,限于篇幅,不再一一介紹。這里介紹了一些要害的特性,包括改進(jìn)的WebLogic控制臺(tái)、MDB增強(qiáng)和全新的存儲(chǔ)-轉(zhuǎn)發(fā)服務(wù)。希望讀完本文后,讀者可以大致了解WebLogic Server 9.0為應(yīng)用程序和J2EE環(huán)境帶來(lái)的變化。