国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

WebLogic Server 9.0:JMS增強(qiáng)功能(圖)

2019-11-18 12:24:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  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)生影響的要害性更改。
  
  針對(duì)治理員的JMS更改
  
  針對(duì)治理員的更改主要有4個(gè)。第一個(gè)與JMS資源的配置和部署方式有關(guān)。第二個(gè)是目的地治理,包括人們期待已久的查看隊(duì)列或主題內(nèi)容的功能。第三個(gè)是新增的存儲(chǔ)-轉(zhuǎn)發(fā)功能。最后是整個(gè)JMS子系統(tǒng)的基礎(chǔ)——WebLogic Persistent Store。
  
  JMS資源的模塊化配置
  
  在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中有了根本改變。
  
  JMS資源現(xiàn)在是作為可部署資源創(chuàng)建的。根據(jù)weblogic-jmsmd.xsd模式定義,它們位于分離的xml文件中。這些資源可與應(yīng)用程序一起配置,也可單獨(dú)配置。
  
  JMS資源可被創(chuàng)建為系統(tǒng)模塊(也稱為環(huán)境相關(guān))或應(yīng)用程序模塊。應(yīng)用程序模塊的治理方式與標(biāo)準(zhǔn)J2EE模塊類似,并且可以像其他J2EE應(yīng)用程序一樣部署為獨(dú)立模塊,或者作為J2EE應(yīng)用程序的一部分。系統(tǒng)模塊與應(yīng)用程序模塊的主要區(qū)別就是其所有者。系統(tǒng)資源模塊由WebLogic治理員擁有并進(jìn)行修改,可供所有應(yīng)用程序使用。應(yīng)用程序資源模塊由WebLogic開(kāi)發(fā)人員擁有并進(jìn)行修改,開(kāi)發(fā)人員將JMS資源模塊打包到應(yīng)用程序的EAR文件中。
  
  可使用WebLogic控制臺(tái)或WebLogic Scripting Tool(WLST)治理系統(tǒng)模塊。每個(gè)資源由兩部分構(gòu)成:
  
  第一個(gè)文件是config/config.xml配置文件,其中給出了資源的定義。
  
  第二個(gè)XML文件位于域主目錄下的config/jms目錄中,其中包含JMS資源的具體信息。
  
  通過(guò)示例可以更好地理解這些內(nèi)容。我創(chuàng)建了一個(gè)名為MikesTestModule的系統(tǒng)模塊。其中包含兩個(gè)實(shí)體:名為MIKES_TEST_QUEUE的隊(duì)列及名為MIKES_TEST_TOPIC的主題。下面的代碼片斷描述了域的config/config.xml文件中的系統(tǒng)模塊:
  
  <jms-system-resource>
  <name>MikesTestModule</name>
  <target>AdminServer</target>
  <sub-deployment>
  <name>MIKES_TEST_QUEUE</name>
  <target>MyJMSServer</target>
  </sub-deployment>
  <sub-deployment>
  <name>MIKES_TEST_TOPIC</name>
  <target>MyJMSServer</target>
  </sub-deployment>
  <descriptor-file-name>jms/MikesTestModule-jms.xml
  </descriptor-file-name>
  </jms-system-resource>
  
  請(qǐng)注重元素<descriptor-file-name/>。它引用了包含各個(gè)JMS實(shí)體的具體信息的文件。引用的config/jms/MikesTestModule-jms.xml文件如下所示:
  
  <weblogic-jms xmlns="http://www.bea.com/ns/weblogic/90">
  <queue name="MIKES_TEST_QUEUE">
  <message-logging-params>
  <message-logging-enabled>true</message-logging-enabled>
  <message-logging-format>%headers%,%PRoperties%
  </message-logging-format>
  </message-logging-params>
  <jndi-name>mike.test.queue</jndi-name>
  </queue>
  <topic name="MIKES_TEST_TOPIC">
  <jndi-name>mike.test.topic</jndi-name>
  </topic>
  </weblogic-jms>
  
  通過(guò)創(chuàng)建一個(gè)遵循weblogic-jmsmd.xsd模式(與上例中config/jms/MikesTestModule-jms.xml文件的模式相同)的XML文件,即可配置應(yīng)用程序模塊。根據(jù)說(shuō)明文檔中的論述,應(yīng)用程序模塊必須包含在應(yīng)用程序EAR文件中,并在weblogic-application.xml文件中進(jìn)行引用。部署了包含JMS應(yīng)用程序模塊的EAR文件之后,為資源定義持久性存儲(chǔ)就是治理員的任務(wù)了。
  
  對(duì)系統(tǒng)模塊和應(yīng)用程序模塊的選擇取決于IT團(tuán)隊(duì)的經(jīng)驗(yàn)。在需要與其他消息傳遞產(chǎn)品交互的環(huán)境中,采用系統(tǒng)模塊部署通常最為適合,而僅在內(nèi)部使用WebLogic JMS隊(duì)列或主題的應(yīng)用程序則更適合采用應(yīng)用程序模塊。
  
  系統(tǒng)模塊和應(yīng)用程序模塊都是由以下實(shí)體中的一項(xiàng)或多項(xiàng)組成的:
  
  JMS隊(duì)列和JMS分布式隊(duì)列
  JMS主題和分布式主題
  配額
  模板
  連接工廠
  外部服務(wù)器
  目的地要害字
  存儲(chǔ)-轉(zhuǎn)發(fā)導(dǎo)入的目的地
  遠(yuǎn)程存儲(chǔ)-轉(zhuǎn)發(fā)上下文
  存儲(chǔ)-轉(zhuǎn)發(fā)錯(cuò)誤處理
  
  然后,模塊中的各實(shí)體將一個(gè)現(xiàn)有的JMS服務(wù)器作為目標(biāo)。有些實(shí)體(如:連接工廠)也可以以WebLogic服務(wù)器或集群為目標(biāo)。
  
  圖1展示了顯示MikesTestModule示例模塊的治理員控制臺(tái),該模塊有兩個(gè)實(shí)體,均以名為MyJMSServer的JMS服務(wù)器為目標(biāo)。
  
 WebLogic Server 9.0:JMS增強(qiáng)功能(圖)(圖一)
  圖1. 顯示模塊實(shí)體

  
  將可部署的JMS資源與WebLogic 8中的配置進(jìn)行比較,其優(yōu)勢(shì)清楚可見(jiàn):
  
  治理員或部署人員將應(yīng)用程序及其全部資源從一個(gè)環(huán)境移植到另一個(gè)環(huán)境時(shí)更為輕松。需要的手動(dòng)配置更少,當(dāng)資源是應(yīng)用程序模塊時(shí)更是如此。
  
  資源與資源配置的分離使應(yīng)用程序需求分得更清楚(如:一個(gè)隊(duì)列,或者隊(duì)列的配置方式)。
  
  假如應(yīng)用程序在內(nèi)部(此時(shí)消息不以其他應(yīng)用程序?yàn)槟繕?biāo))使用了一些隊(duì)列,應(yīng)用程序模塊就顯得尤為便利了;這些模塊可為治理員和部署人員節(jié)省大量時(shí)間。例如,根據(jù)構(gòu)建過(guò)程中所生成的wlw-manifest.xml文件的定義,基于BEA WebLogic Workshop的Web應(yīng)用程序需要至少兩個(gè)JMS隊(duì)列才能正常工作。使用可部署資源時(shí),這些隊(duì)列將隨應(yīng)用程序一起部署,因此部署人員不會(huì)再忘記創(chuàng)建它們了。
  
  在部署開(kāi)始之前——而不是部署過(guò)程中,即可檢查各個(gè)文件的模式。任何曾經(jīng)修改config.xml文件卻因括號(hào)放置位置不當(dāng)而使服務(wù)器在啟動(dòng)時(shí)就悲慘地發(fā)生故障的人都會(huì)對(duì)此深有體會(huì)。
  
  總體來(lái)說(shuō),定義JMS資源的新方法最終將使治理員和部署人員的工作更為輕松。
  
  治理JMS目的地
  
  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í)行中的消息。
  
 WebLogic Server 9.0:JMS增強(qiáng)功能(圖)(圖二)
  圖2. 在JMS目的地中查看消息

  
  如圖2所示,隊(duì)列的內(nèi)容現(xiàn)在是可治理的。您可以創(chuàng)建新消息(本例中已實(shí)現(xiàn)了這一功能)、導(dǎo)入或?qū)С鱿ⅰh除單個(gè)消息或者刪除整個(gè)隊(duì)列。這項(xiàng)功能需要在產(chǎn)品環(huán)境中謹(jǐn)慎地構(gòu)建安全性后才能使用,但它簡(jiǎn)化了應(yīng)用程序的開(kāi)發(fā)與測(cè)試。
  
  最后,您還可以查看各個(gè)消息的頭部和內(nèi)容。圖3所示為圖2中第二條消息的顯示結(jié)果。
  
 WebLogic Server 9.0:JMS增強(qiáng)功能(圖)(圖三)
  圖3. 查看消息具體信息

  
  這里有兩個(gè)細(xì)節(jié)應(yīng)該注重。首先,JMS目的地可以暫停。任何曾經(jīng)碰到過(guò)消息循環(huán)問(wèn)題(消息驅(qū)動(dòng)bean(MDB)獲取消息、拋出異常、回滾消息、下一個(gè)MDB獲取消息……如此反復(fù))的用戶都會(huì)喜歡上這一功能。治理員現(xiàn)在可以暫停目的地,查看出問(wèn)題的消息,然后采取恰當(dāng)?shù)拇胧D梢詫MS目的地暫停為以下的一種或幾種狀態(tài):
  
  為生產(chǎn)而暫停:任何生產(chǎn)者嘗試發(fā)送已提交的消息時(shí)都會(huì)導(dǎo)致異常。
  
  為插入而暫停:禁止使用任何執(zhí)行中的消息(如事務(wù)中的消息)和完全提交的消息。任何包含在執(zhí)行中事務(wù)中的消息都不會(huì)出現(xiàn)在隊(duì)列中,雖然答應(yīng)事務(wù)成功完成。在隊(duì)列恢復(fù)之前,消息不可用。
  
  為消費(fèi)而暫停:任何消費(fèi)者都不會(huì)接收到消息。假如指定了超時(shí)設(shè)置,那么在消費(fèi)恢復(fù)之前,所有同步接收者都會(huì)超時(shí)或阻塞。所有MDB也會(huì)暫停。答應(yīng)所有執(zhí)行中的事務(wù)都正常完成。
  
  這幾種暫停狀態(tài)均可在啟動(dòng)時(shí)及運(yùn)行時(shí)被激活。
  
  最后值得注重的就是改進(jìn)的記錄功能。WebLogic Server 9.0中包含全新的WebLogic Diagnostic Service,JMS資源也可參與其中。可啟動(dòng)或關(guān)閉對(duì)各個(gè)JMS實(shí)體的記錄,這使治理員擁有了細(xì)粒度控制權(quán)。默認(rèn)情況下,日志保存在servers/<server_name>/logs/jmsServers/<jms_server_name>/jms.messages.log中,其中<server_name>表示W(wǎng)ebLogic Server名稱,而<jms_server_name>表示JMS服務(wù)器的名稱。日志頭部可設(shè)置為包含某些或全部標(biāo)準(zhǔn)JMS頭部,還可包含任何定制的屬性。下面是一個(gè)日志片斷,它顯示了一個(gè)消息的生產(chǎn)和移除。
  
  ####
  <May 11, 2005 10:07:10 PM EDT>
  <>
  <>
  <1115863630224>
  <141490>
  <ID:<225269.1115863629999.0>
  > <test-message-6>
  <MikesTestModule!MIKES_TEST_QUEUE>
  <ProdUCed>
  <weblogic>
  <>
  <
  <?xml version="1.0" encoding="UTF-8"?>
  <mes:WLJMSMessagexmlns:mes="http://www.bea.com/WLS/JMS/Message">
  <mes:Header/>
  </mes:WLJMSMessage>>
  ####
  <May 11, 2005 10:08:07 PM EDT>
  <>
  <>
  <1115863687830>
  <202875> <ID:<225269.1115863629999.0>>
  <test-message-6> <MikesTestModule!MIKES_TEST_QUEUE>
  <Removed> <weblogic> <>
  <<?xml version="1.0" encoding="UTF-8"?>
  <mes:WLJMSMessage xmlns:mes="http://www.bea.com/WLS/JMS/Message">
  <mes:Header/>
  </mes:WLJMSMessage>>
  
  存儲(chǔ)-轉(zhuǎn)發(fā)
  
  WebLogic Server 9.0現(xiàn)在能將消息轉(zhuǎn)發(fā)到遠(yuǎn)程WebLogic JMS服務(wù)器上,即便此時(shí)該服務(wù)器不可用。存儲(chǔ)-轉(zhuǎn)發(fā)(store-and-forward,SAF)服務(wù)看上去就像是經(jīng)過(guò)大力改進(jìn)的WebLogic Message Bridge。SAF與Message Bridge的區(qū)別表現(xiàn)在以下三個(gè)方面:
  
  與Message Bridge相比,SAF更快、更具可伸縮性,但非WebLogic版本或WebLogic Server 9.0之前版本的目的地依然支持Message Bridge。
  
  SAF支持下面介紹的Unit-of-Order特性。
  
  WebLogic Server 9.0使用SAF服務(wù)為Web Services Reliable Messaging(WSRM)提供可靠性。
  
  SAF機(jī)制由三個(gè)部分組成:
  
  源JMS目的地,JMS生產(chǎn)者將消息發(fā)送到這里。
  
  SAF發(fā)送和接收代理,處理服務(wù)器和集群之間的消息傳輸。SAF接收代理僅用于WSRM。
  
  JMS模塊,其中包含SAM導(dǎo)入的目的地、SAF遠(yuǎn)程上下文以及SAF錯(cuò)誤處理。遠(yuǎn)程上下文包含遠(yuǎn)程服務(wù)器的URL及安全憑證。導(dǎo)入的目的地是遠(yuǎn)程目的地的本地表示。錯(cuò)誤處理定義了發(fā)生錯(cuò)誤時(shí)要采取的行動(dòng)。
  
  圖4展示了SAF服務(wù)移動(dòng)消息的方式。在本例中,JMS生產(chǎn)者將消息放置在一個(gè)本地JMS目的地(隊(duì)列或主題)中,并繼續(xù)其工作。消息會(huì)被轉(zhuǎn)發(fā)或?yàn)楸镜豐AF發(fā)送代理所獲取。代理隨后將消息轉(zhuǎn)發(fā)給遠(yuǎn)程SAF接收代理,假如它不可用,則消息將存儲(chǔ)在本地服務(wù)器上直到遠(yuǎn)程系統(tǒng)恢復(fù)正常。假如本地服務(wù)器在SAF代理能夠轉(zhuǎn)發(fā)消息之前發(fā)生故障,則消息將一直持續(xù)到JMS服務(wù)器恢復(fù)正常。一旦消息抵達(dá)遠(yuǎn)程導(dǎo)入的目的地,JMS消費(fèi)者就可獲取消息。在整個(gè)WebLogic JNDI樹(shù)中,JMS目的地和導(dǎo)入的目的地都是可用的。
  
 WebLogic Server 9.0:JMS增強(qiáng)功能(圖)(圖四)
  圖4. 存儲(chǔ)-轉(zhuǎn)發(fā)消息流

  
  所有持久性消息都以Exactly-once的服務(wù)質(zhì)量(QOS)交付,并確保有序。在一個(gè)Unit-of-Order中發(fā)送的非持久性消息以At-most-once的服務(wù)質(zhì)量交付,假如發(fā)生故障,到達(dá)時(shí)可能會(huì)次序混亂。SAF隊(duì)列和主題可以以三種QOS水平之一進(jìn)行定義:Exactly-once(僅發(fā)送一次)、At-least-once(至少發(fā)送一次)或At-most-once(最多發(fā)送一次)。
  
  SAF架構(gòu)的要害之處在于JMS生產(chǎn)者和消費(fèi)者均沒(méi)有任何指示SAF服務(wù)已包含的標(biāo)志。
  
  WebLogic持久性存儲(chǔ)
  
  WebLcogic 9.0帶來(lái)了一個(gè)全新的統(tǒng)一持久性存儲(chǔ)子系統(tǒng),在整個(gè)WebLogic服務(wù)器中,只要需要持久性,就會(huì)用到這一子系統(tǒng)。SAF代理、JMS服務(wù)器、可靠的Web服務(wù)、診斷服務(wù)和JTA日志都使用持久性存儲(chǔ)。
  
  每個(gè)WebLogic Server實(shí)例都帶有默認(rèn)的文件存儲(chǔ)庫(kù),位于data/store/default目錄下。任何需要持久性但未顯式配置持久性存儲(chǔ)庫(kù)的子系統(tǒng)都將使用默認(rèn)存儲(chǔ)庫(kù)。多個(gè)子系統(tǒng)可使用同一存儲(chǔ)庫(kù),只要它們均以同一服務(wù)器為目標(biāo)即可。存儲(chǔ)庫(kù)既可基于文件,也可基于JDBC,惟一的例外就是默認(rèn)存儲(chǔ)庫(kù),它必須是文件存儲(chǔ)庫(kù)。
  
  擁有多個(gè)存儲(chǔ)庫(kù)以及答應(yīng)多個(gè)應(yīng)用程序訪問(wèn)同一存儲(chǔ)庫(kù)的能力使治理員設(shè)計(jì)其WebLogic域時(shí)具有很大的靈活性。例如,一個(gè)存儲(chǔ)庫(kù)可能保存在高可用的基于SAN的磁盤上,而另外一個(gè)存儲(chǔ)庫(kù)則可能基于JDBC。前者性能較高,但必須手動(dòng)進(jìn)行故障轉(zhuǎn)移(假設(shè)為集群環(huán)境)。后者性能較低,但可支持自動(dòng)化的故障轉(zhuǎn)移。治理員可以根據(jù)客戶需求,確定對(duì)于每個(gè)應(yīng)用程序哪種存儲(chǔ)庫(kù)最適合。
  
  提升持久性存儲(chǔ)庫(kù)性能的一個(gè)訣竅就是利用存儲(chǔ)庫(kù)的事務(wù)支持。例如,假設(shè)同一事務(wù)內(nèi)包含一個(gè)JMS服務(wù)器和一個(gè)EJB計(jì)時(shí)器。若JMS服務(wù)器和EJB計(jì)時(shí)器使用同一存儲(chǔ)庫(kù),事務(wù)可為一階段的,只需寫入存儲(chǔ)庫(kù)一次。但假如它們各自使用了存儲(chǔ)庫(kù),事務(wù)就是兩階段的,需要對(duì)每個(gè)存儲(chǔ)庫(kù)執(zhí)行兩次寫操作,此外還要對(duì)事務(wù)日志執(zhí)行一次寫操作,總共5次寫操作。這聽(tīng)起來(lái)很讓人吃驚,對(duì)于每秒要處理大量事務(wù)的系統(tǒng),這樣的差異對(duì)性能的影響是非常顯著的。
  
  針對(duì)開(kāi)發(fā)人員的JMS更改
  
  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代碼,除非您要使用新特性。
  
  JMS 1.1支持
  
  WebLogic 9完全支持JMS 1.1。根據(jù)Sun Microsystems的說(shuō)明文檔,JMS 1.1促成了“PTP和Pub/Sub域編程接口的統(tǒng)一”。其結(jié)果就是您可以創(chuàng)建一個(gè)處理會(huì)話,然后在同一個(gè)事務(wù)中,從隊(duì)列中接收消息并將其發(fā)送到某個(gè)主題。這在JMS 1.0中是無(wú)法實(shí)現(xiàn)的。JMS 1.1的重要之處就在于它對(duì)JMS 1.0的向下兼容性。Unit-of-Order功能
  
  具有遺留系統(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)者的一組信息必須順序處理的情況。
  
  例如,生產(chǎn)者A在一個(gè)Unit-of-Order中發(fā)送消息X、Y和Z。MDB獲取消息X并對(duì)其進(jìn)行處理。消息Y和Z一直在隊(duì)列中,直到MDB實(shí)例提交事務(wù)為止。只有在MDB提交消息X之后,才可以處理消息Y,依此類推。
  
  Unit-of-Order有以下幾個(gè)局限性:
  
  Unit-of-Order不能對(duì)整個(gè)隊(duì)列操作,只能針對(duì)一組消息操作。
  
  Unit-of-Order是JMS的擴(kuò)展,這意味著Unit-of-Order不能用于其他消息傳遞環(huán)境。
  
  有趣的是,Unit-of-Order功能可處理分布式隊(duì)列。同一個(gè)Unit-of-Order中的所有消息都將發(fā)送到同一個(gè)分布式目的地成員處。
  
  創(chuàng)建Unit-of-Order的方法有兩種,可通過(guò)編程創(chuàng)建,也可通過(guò)WebLogic控制臺(tái)創(chuàng)建。WebLogic提供了weblogic.jms.extensions.WLMessageProducer類,該類實(shí)現(xiàn)了avax.jms.MessageProducer接口。BEA添加了兩個(gè)方法:getUnitOfOrder()和setUnitOfOrder()。您可以使用這兩個(gè)方法來(lái)設(shè)置或獲取當(dāng)前Unit-of-Order的名稱。WebLogic治理員可為會(huì)話(通過(guò)連接工廠)和目的地配置Unit-of-Order。通過(guò)setUnitOfOrder()方法可進(jìn)行重寫。
  
  有關(guān)Unit-of-Order中的消息何時(shí)交付的規(guī)則是非常復(fù)雜的。黃金法則就是假如消息生產(chǎn)者關(guān)閉,則當(dāng)前消息處理完成;假如一個(gè)事務(wù)提交了,則所有消息均已發(fā)送。每種消息確認(rèn)模式都各不相同,說(shuō)明文檔中對(duì)其進(jìn)行了具體介紹。
  
  MDB增強(qiáng)
  
  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)。
  
  第一個(gè)改進(jìn)就是治理員可暫停MDB,而無(wú)需取消應(yīng)用程序的部署,見(jiàn)本文前面“治理JMS目的地”一節(jié)。
  
  與第一個(gè)增強(qiáng)相關(guān),在MDB拋出異常后,將消息處理自動(dòng)暫停一段(可配置的)時(shí)間。
  
  當(dāng)消息發(fā)生循環(huán)時(shí),MDB容器禁止記錄每次異常。而是僅記錄一次,再記錄下異常發(fā)生的次數(shù)。
  
  現(xiàn)在可為MDB的每個(gè)實(shí)例 創(chuàng)建獨(dú)有的client-id,從而幫助持久性訂閱者,而在WebLogic 8.1中是為MDB的每個(gè)類型創(chuàng)建client-id。
  
  J2EE 1.4規(guī)范規(guī)定,MDB可以從服從JCA 1.5的適配器接收消息。您可以在weblogic-ejb-jar.xml部署描述符中設(shè)置resource-adapter-jndi-name參數(shù),從而利用此特性。
  
  在BEA網(wǎng)站中可找到MDB增強(qiáng)的完整列表。
  
  XML消息傳遞
  
  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)的變化。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南漳县| 庆城县| 宝兴县| 托克托县| 徐汇区| 临洮县| 错那县| 高碑店市| 三亚市| 甘泉县| 扎兰屯市| 建德市| 杨浦区| 安徽省| 根河市| 德庆县| 新干县| 平定县| 潮安县| 成安县| 博爱县| 民丰县| 新昌县| 唐河县| 咸阳市| 台东市| 彩票| 濉溪县| 安阳市| 辽源市| 东乡县| 龙州县| 冕宁县| 沐川县| 凤台县| 老河口市| 漠河县| 喜德县| 东乡族自治县| 克东县| 华安县|