
WebLogic Server 9.0是BEA最新推出的應用服務(wù)器版本。這個(gè)版本與J2EE 1.4完全兼容,性能有了更好的表現,同時(shí)在運行管理方面、可靠性方面有了進(jìn)一步的提高。同時(shí)WebLogic Server9.0提供了非常多的新特性,在運行管理、系統可靠、高效等方面提供了很多使用功能,這里不一一列舉,有興趣可以查看:http://e-docs.bea.com/wls/docs90/notes/new.html。那么對于我們開(kāi)發(fā)和管理人員,最感興趣的有哪些,下面著(zhù)重列出:
應用升級
問(wèn)題的提出:
當我們將更新應用需要發(fā)布到生產(chǎn)系統時(shí),常常會(huì )碰到這樣的問(wèn)題:正在進(jìn)行的業(yè)務(wù)操作必須中止,將新的應用替換舊有的應用。這樣會(huì )使當前正在進(jìn)行的業(yè)務(wù)操作停止,影響業(yè)務(wù)工作。另外,從業(yè)務(wù)上原有未完成的操作,新版本更新之后,如果新、舊版本有差異,會(huì )導致前后處理不一致?,F在這樣的問(wèn)題,可以在Server9.0很好的解決了。
這一功能就是Server9.0產(chǎn)品模式下應用更新。它可以支持:
訪(fǎng)問(wèn)情況如下所示:

使用該功能要注意以下說(shuō)明:
Server新加狀態(tài)說(shuō)明:
在原有WebLogic Server9.0的運行狀態(tài)基礎之上加入了Admin狀態(tài),這一狀態(tài)的特點(diǎn)是:
因此,使用Server在A(yíng)dmin狀態(tài)帶來(lái)的好處:在生產(chǎn)環(huán)境部署更新應用時(shí),不用將前端的連接斷開(kāi),用管理員角色直接進(jìn)行測試,不再擔心前端請求會(huì )訪(fǎng)問(wèn)到應用,影響應用的發(fā)布和測試。這樣對于系統上線(xiàn)前的準備非常有幫助。
如下,是WebLogic Server生命周期圖說(shuō)明:

對于如何切換到Admin狀態(tài),有以下兩種方式:
1.當WebLogic Server 沒(méi)有啟動(dòng)時(shí),可以啟動(dòng)Server到Admin狀態(tài),在啟動(dòng)腳本startWebLogic.cmd 中java [options] weblogic.Server 命令options選項加入:
-Dweblogic.management.startupMode=ADMIN
2.當Server 處于Running狀態(tài)時(shí),可以在管理控制臺,選擇Server控制選項,選擇Grace Suspend或者Force Suspend將Server切換到Admin狀態(tài)。
管理控制臺中的門(mén)戶(hù)應用程序支持
管理控制臺的新架構基于WebLogic Portal Framework,而且管理控制臺使用構建在Structs之上的模型-視圖-控制器方法,這使得控制臺更加開(kāi)放,更加易于擴展?,F在,可以以常用于擴展門(mén)戶(hù)應用程序的方式來(lái)擴展管理控制臺??刂婆_擴展可以包括現有頁(yè)面、新頁(yè)面和小節,以及JSR 168或WSRP portlet的簡(jiǎn)單改寫(xiě)。
配置更改的兩階段提交
為了保護修改并防止其他人進(jìn)行修改,管理控制臺中引入了一個(gè)新的區域,稱(chēng)為Change Center,在開(kāi)始修改域配置之前,首先鎖定管理控制臺。當完成修改時(shí),保存這些修改并將它們發(fā)布到域中的所有實(shí)例,也可以回滾修改并釋放鎖定。每臺服務(wù)器自行決定它是否接收修改。如果所有的服務(wù)器都接受修改,它們將更新它們的工作配置樹(shù),修改完成。如果有一臺或多臺服務(wù)器不接受修改,那么所有的服務(wù)器都不會(huì )使修改生效,因此避免了出現未完成的中間狀態(tài)。這種功能有助于確定WebLogic Server配置信息總是正確和一致的。

生產(chǎn)環(huán)境的服務(wù)器性能自調整
在WebLogic Server9.0之前,Server的一些性能參數是在Server啟動(dòng)之前設置的,如線(xiàn)程數等,不能隨著(zhù)系統的運行情況進(jìn)行自動(dòng)調整,這樣可能不會(huì )最大限度的使用系統資源。另外,Server上部署不同的應用,但對應用的重要級別不能按照權重分配資源的比例。針對上面的問(wèn)題,WebLogic Server9.0提供了服務(wù)器性能自調整的新特性,可以解決上述問(wèn)題。而且通過(guò)自調整功能簡(jiǎn)化了對WebLogic Server的配置過(guò)程,同時(shí)自調整功能有助于防止請求高峰期間的死鎖情況。
WebLogic Server中關(guān)鍵的自調整功能包括:
工作負荷(Work Managers)管理——管理員可以在域級別、應用程序級別和模塊級別上定義工作調度策略和約束。這樣,當我們在WebLogic Server部署多個(gè)應用,而這些應用有不同的性能要求,就可以使用Work Managers定義的策略,根據應用的重要情況,分配不同比例的資源。如,網(wǎng)上銀行業(yè)務(wù)有企業(yè)銀行業(yè)務(wù)和個(gè)人銀行業(yè)務(wù),因為企業(yè)銀行業(yè)務(wù)資金數額大,可靠性要求高,那么就可以使用Work Managers為其分配更多的資源。
自動(dòng)的線(xiàn)程計數調整——通過(guò)基于歷史吞吐量和隊列大小,自動(dòng)修改線(xiàn)程池的容量,可以最大化線(xiàn)程池的吞吐量。
線(xiàn)程調度功能——WebLogic Server 9.0實(shí)現了commonj work manager API,把線(xiàn)程調度功能公開(kāi)給開(kāi)發(fā)人員。應用程序也可以使用Work Manager API來(lái)異步執行工作,并接收關(guān)于執行狀態(tài)的通知。
Work Manager可以對如下資源進(jìn)行控制:
Work Managers 可以在如下配置文件進(jìn)行域級別、應用程序級別和模塊級別上定義:
配置示例:
<work-manager>
<name>responsetime_workmanager</name>
<response-time-request-class>
<name>my_response_time</name>
<goal-ms>2000</goal-ms>
</response-time-request-class>
</work-manager>
自動(dòng)的線(xiàn)程計數調整:
在WebLogic Server9.0版本之前,進(jìn)程有多個(gè)執行隊列,在不同的執行隊列,基于優(yōu)先級和排隊順序,執行不同的任務(wù),這樣可以避免死鎖。有缺省的執行隊列:weblogic.kernel.default,還有預先定義的隊列來(lái)做內部管理用,如:weblogic.admin.HTTP和 weblogic.admin.RMI。對性能的調整,可以通過(guò)調整缺省隊列上的線(xiàn)程數,或者為特定的應用配置自己的執行隊列,對這個(gè)執行隊列指定相應的線(xiàn)程數。
對WebLogic Server9.0,建立了單一線(xiàn)程池,可以執行所有類(lèi)型的操作。 WebLogic Server基于我們定義的規則和實(shí)時(shí)運行情況,來(lái)調整處理工作的優(yōu)先級。線(xiàn)程池可以根據系統吞吐情況,自動(dòng)調整大小。例如,根據歷史吞吐量的統計,表明需要更高的線(xiàn)程數量時(shí),WebLogic Server將自動(dòng)增加線(xiàn)程數目。與此類(lèi)似,當統計表明減小線(xiàn)程不會(huì )影響吞吐量時(shí),WebLogic Server會(huì )減少線(xiàn)程數。這一新策略將使管理者更容易配置資源和性能調優(yōu),避免向從前一樣調整自己的執行隊列。
過(guò)載保護當系統的負載壓力非常大時(shí),如果不對處理容量進(jìn)行配置,那么會(huì )導致內存耗盡(out-of-m異常、執行隊列過(guò)載等問(wèn)題。因此在WebLogic Server9.0可以對如下資源進(jìn)行配置:
<overload-protection>
<panic-action>system-exit</panic-action>
</overload-protection>
廣域網(wǎng)或城域網(wǎng)的HTTP會(huì )話(huà)復制和故障轉移
WebLogic Server為我們提供了業(yè)界最強的集群功能,它能夠實(shí)現系統的高擴展性和高可靠性。
整個(gè)系統結構見(jiàn)下圖:

假定原有集群服務(wù)為集群A 提供,在原有負載均衡前配置全局負載均衡器。另外根據Domain A的結構復制建Domain B。這樣全局負載均衡器可以根據要求,配置相應負載均衡策略,接收到前端請求時(shí),根據配置,將請求分發(fā)給后面的集群。通過(guò)復制通道,運行在集群A中的服務(wù)器實(shí)例上的會(huì )話(huà)信息,可以被復制到集群B中的服務(wù)器實(shí)例上。這樣當集群A中的某一主Server出現問(wèn)題時(shí),集群A中的另一個(gè)Server可以從集群B獲得會(huì )話(huà)數據,對于此次會(huì )話(huà)充當主Server。局部負載均衡可以將請求切換到該Server上。如果集群A中所有Server都不能提供服務(wù),局部負載均衡將HTTP請求返回全局負載均衡,全局負載均衡將請求轉發(fā)給集群B,集群B的局部負載均衡將請求發(fā)送給有復制會(huì )話(huà)信息的Server上。這樣就實(shí)現了跨集群的負載均衡。這種系統結構會(huì )對異地應用備份中心建設有參考意義——建設兩個(gè)物理位置不同的集群系統,系統部署的應用相同,當其中的一個(gè)集群系統發(fā)生了網(wǎng)絡(luò )等故障時(shí),應用的處理可以自動(dòng)切換到另一個(gè)系統,而業(yè)務(wù)應用不會(huì )發(fā)生中斷。
對跨集群的網(wǎng)絡(luò )結構,有兩種不同的情況:一種為跨城域網(wǎng)(metropolitan area network,MAN)中的集群,另一種為跨廣域網(wǎng)(wide area network,WAN)的集群,如地理上相隔很遠的地方。對于上述兩種網(wǎng)絡(luò ),跨集群的系統結構是一樣的,不同的是會(huì )話(huà)復制方式不同。
對于跨MAN方式的集群,WebLogic Server提供實(shí)時(shí)基于兩個(gè)集群一級的同步會(huì )話(huà)內存復制,這樣要求網(wǎng)絡(luò )延時(shí)比較低,在集群響應時(shí)延范圍之內。否則會(huì )出現超時(shí)錯誤。
處理過(guò)程如下:

跨集群容錯的幾種情況:
對于跨WAN方式的集群,主要使用會(huì )話(huà)信息通過(guò)異步的JDBC持久化到遠程的集群實(shí)例上來(lái)實(shí)現容錯。對異步的JDBC持久化,即定期地,將會(huì )話(huà)狀態(tài)會(huì )刷新到遠程集群服務(wù)器實(shí)例上表中的存儲器。因為到遠程服務(wù)器實(shí)例的JDBC持久化是異步執行的,它比同步的JDBC復制性能更高,對于在同步JDBC復制情況,數據庫寫(xiě)操作延時(shí)會(huì )影響響應的時(shí)間。
處理過(guò)程如下:

跨集群容錯的幾種情況;
上述只是WebLogic Server9.0的幾個(gè)新特性的介紹,對WebLogic Server在Web Service,JMS,管理框架等方面還是非常值得關(guān)注,希望本文對我們今后的使用有所幫助。
聯(lián)系客服