配置好 BEA WebLogic Server 域之后,需要對應(yīng)用程序進(jìn)行部署。
這是為開發(fā)人員撰寫的關(guān)于 BEA WebLogic Server 管理方面的系列文章的第 2 部分。第 1 部分(WLDJ, Vol. 2, issue 10)介紹 WebLogic Server 域的主要概念和術(shù)語。接下來,我們向您介紹使用最常用的圖形化工具來設(shè)置 WebLogic Server,打包并配置要部署的應(yīng)用程序,包括 Administration Console、Configuration Wizard 和 WebLogic Builder。
在本文中,我們將討論應(yīng)用程序部署、運(yùn)行時(shí)管理和 WebLogic Server 可用的監(jiān)視工具(包括基于圖形化的和基于命令行的)。
利用 Admin Console 進(jìn)行應(yīng)用程序部署
在 Admin Console 的部署區(qū)域,可將新的應(yīng)用程序和模塊——J2EE Enterprise 應(yīng)用程序、EJB、Web 應(yīng)用程序、J2EE CA Connectors,以及 WebLogic Server Startup 或 Shutdown 類——部署到域中的服務(wù)器和群集。
WebLogic Server 允許您將一個(gè)應(yīng)用程序或模塊部署為一個(gè)檔案文件或者一個(gè)解開的檔案文件。解開的檔案文件包括了與檔案文件本身相同的文件并保持相同的目錄結(jié)構(gòu)。存檔的應(yīng)用程序和模塊必須對應(yīng)模塊類型使用正確的文件擴(kuò)展名。
l EJB 打包成 .jar 文件。
l Web 應(yīng)用程序打包成 .war 文件。
l 資源適配器打包成 .rar 文件。
l 企業(yè)應(yīng)用程序打包成 .ear 文件。
l Web 服務(wù)打包成 .war 或 .ear 文件。
解開的檔案文件經(jīng)常用于開發(fā)環(huán)境,因?yàn)樗鼈冊试S您在無需重新生成 J2EE 檔案文件的情況下,很容易地更改部分應(yīng)用程序、重新編譯和重新部署。要定位一個(gè)解開的檔案文件,選擇應(yīng)用程序或模塊的頂層目錄,而不是檔案文件。
在最初為一個(gè)或多個(gè)服務(wù)器設(shè)置和部署應(yīng)用程序或模塊之后,您可以在無需重新配置和重新復(fù)制其文件并且也無需重啟服務(wù)器的情況下,停止、部署或者重新部署應(yīng)用程序或模塊。這通常稱為熱部署。圖 1 給出的是 Admin Console 部署屏幕的一個(gè)例子。
當(dāng)服務(wù)器在開發(fā)模式下運(yùn)行時(shí),它也支持自動(dòng)部署。有了自動(dòng)部署,服務(wù)器將監(jiān)視服務(wù)器應(yīng)用程序目錄中新的或者更新過的文件,并自動(dòng)地部署或重新部署新的或更新過的檔案文件。
利用 Admin Console 進(jìn)行應(yīng)用程序和系統(tǒng)的監(jiān)控
BEA WebLogic Server Admin Console 為監(jiān)控 J2EE 應(yīng)用程序組件提供了方法。要確保所有組件已正確部署并且對應(yīng)用程序可用,第一個(gè)也是最明顯的方法是,能在 JNDI 樹中找到這些組件。圖 2 是 Admin Console 顯示的 JNDI 樹。
![]() |
其次,當(dāng)應(yīng)用程序運(yùn)行時(shí),您可以監(jiān)控單個(gè)組件的使用情況,以確定應(yīng)用程序正以最有效的方式使用服務(wù)器設(shè)施。Admin Console 中有很多地方允許您這樣做。對于 EJB,Admin Console 提供了大量的關(guān)于EJB運(yùn)行時(shí)使用情況的統(tǒng)計(jì)數(shù)字,能幫助您確定服務(wù)器為每個(gè) EJB 處理請求的效率。當(dāng)Admin Console 提供這些統(tǒng)計(jì)信息的一個(gè)子集的默認(rèn)視圖時(shí),還允許您實(shí)時(shí)地定制該視圖,以滿足您對特定信息的需求。圖 3 顯示了 EJB 統(tǒng)計(jì)信息視圖的一個(gè)例子。
與 EJB 統(tǒng)計(jì)信息類似,還有 servlet 和 JSP 統(tǒng)計(jì)信息的一個(gè)可定制的顯示,如圖 4 所示。
您還可以監(jiān)控許多其他 J2EE 以及特定于服務(wù)器的資源。圖 5 顯示了一個(gè)監(jiān)控 JDBC 連接池的例子,而圖 6 則顯示了如何通過 Admin Console 來監(jiān)控服務(wù)器的總體健康狀態(tài)。
使用由 Admin Console 提供的統(tǒng)計(jì)的和圖形的信息,可以得出應(yīng)用程序性能的初步評估,看到潛在的瓶頸,以及識別可能的優(yōu)化區(qū)域。
盡管 Admin Console 提供了有價(jià)值的應(yīng)用程序和服務(wù)器監(jiān)控功能,但是它不可能為所有情況提供充足的信息。在這些情況下,有以下選項(xiàng):
· 利用 BEA WebLogic Server 開放的、可擴(kuò)展的管理框架,將新的監(jiān)控功能添加到Admin Console,或者從定制的應(yīng)用程序訪問特定的監(jiān)控功能。
· 利用廣闊的 BEA 伙伴生態(tài)系統(tǒng),它有眾多的管理實(shí)現(xiàn)模塊,他們提供插入到 WebLogic Server 的產(chǎn)品,還提供更加廣泛的管理及監(jiān)控功能,在多數(shù)情況下涵蓋整個(gè)企業(yè)環(huán)境,而不只涵蓋部署在 WebLogic Server 上的應(yīng)用程序。
命令行工具: weblogic.Admin 和 weblogic.Deployer
可用于 BEA WebLogic Server 的圖形管理工具為管理 WebLogic Server 應(yīng)用程序提供了一種功能強(qiáng)大、直觀且可視的方法。然而有些情況下,更簡單、更集中的實(shí)用程序會(huì)更方便。在開發(fā)環(huán)境中,命令行接口為在創(chuàng)建、部署以及測試過程中自動(dòng)化管理性任務(wù)提供了一種高度靈活的方法。在生產(chǎn)環(huán)境中,命令行接口為完成減少引入人為錯(cuò)誤機(jī)會(huì)的任務(wù)提供了一個(gè)可重復(fù)的過程。
命令行工具雖不可視、不直觀,但它確實(shí)允許您通過 Admin Console 訪問所有可用的功能,甚至還為訪問某些功能提供了更靈活的方法,這些功能要么被控制臺(tái)隱藏要么不易于使用。大多數(shù)對管理性功能的這種訪問是通過 weblogic.Admin Java 程序的命令進(jìn)行的,這些命令使您可以直接操縱底層 JMX 基礎(chǔ)結(jié)構(gòu)。要想使用這些特殊的命令 (GET、 SET、CREATE、INVOKE、 DELETE 和 QUERY),需要了解 JMX 和 BEA WebLogic Server 的 JMX Mbean。我們將在后文詳細(xì)介紹 JMX。本文其余部分將集中在這些命令的子集上,而不需要了解 JMX,即便它們正在為完成工作而訪問服務(wù)器的 JMX 基礎(chǔ)結(jié)構(gòu)。
Weblogic.Admin 實(shí)用程序是一個(gè)命令行接口,可以用來管理、配置和監(jiān)控 WebLogic Server。同 Admin Console 一樣,Weblogic.Admin 也扮演了客戶機(jī)的角色,在 Admin Server上調(diào)用管理性操作,Admin Server 是域中所有服務(wù)器的中心管理點(diǎn)。雖然 Admin Console 做每一樣事都要通過 Admin Server,但 weblogic.Admin 實(shí)用程序既可以直接訪問單獨(dú)的被管理服務(wù)器,又可以訪問Admin Server。即使關(guān)閉了Admin Server,仍可使用 weblogic.Admin 實(shí)用程序從被管理服務(wù)器檢索運(yùn)行時(shí)信息以及調(diào)用某些管理性命令。然而,當(dāng) Admin Server 可用時(shí),BEA WebLogic Server只能保存對域的配置改變。
由于 weblogic.Admin 是一個(gè) Java 程序,所以在運(yùn)行之前需要先設(shè)置環(huán)境。一旦完成設(shè)置,就可按照以下語法運(yùn)行了:
java weblogic.Admin [ [-url | -adminurl] [protocol://]
listen-address:port]
-username username [-password password]
COMMAND-NAME arguments
如果想讓 weblogic.Admin 使用 SSL 與 WebLogic Server 進(jìn)行通信,則需要定義一些附加的 Java 系統(tǒng)屬性,以告訴 weblogic.Admin 某些信息。例如, weblogic.security.SSL.trustedCAKeyStore 屬性告訴 weblogic.Admin(和任何其他 WebLogic SSL 客戶機(jī)或服務(wù)器)到哪兒去找信任密鑰存儲(chǔ)器。 將 weblogic.security.- SSL.ignoreHostnameVerification 設(shè)置為 true 會(huì)禁用檢驗(yàn)服務(wù)器證明書中的主機(jī)名是否匹配服務(wù)器 IP 地址的正常過程。
我們實(shí)在無法解釋所有通過 WebLogic Server 命令行接口可用的命令——適合在這兒講的簡直太多了。要想了解可用命令的綜合列表,請參閱 http://edocs.bea.com/wls/docs81/admin_ref/cli.html 處的 WebLogic Server 文檔。我們在這兒只提供了幾個(gè)例子,為的是讓您對自己所能做的事有一個(gè)感性認(rèn)識。
FORCESHUTDOWN 命令指示 Admin Server 關(guān)閉一個(gè)被管理服務(wù)器:
java weblogic.Admin -url t3://AdminHost:7001
-username weblogic -password weblogic
FORCESHUTDOWN MedRecManagedServer
該命令發(fā)出之后,名為 MedRecManagedServer 的 BEA WebLogic Server 實(shí)例就會(huì)自己關(guān)閉,而不等待正在處理的請求完成。
服務(wù)器收到該命令時(shí),會(huì)將消息輸出到它的日志文件和標(biāo)準(zhǔn)輸出,表明服務(wù)器的狀態(tài)正在改變、關(guān)閉序列正在啟動(dòng)。如果該命令執(zhí)行成功,目標(biāo)服務(wù)器輸出的最終消息如下:
<Jul 12, 2003 11:28:59 AM EDT> <Alert>
<WebLogicServer> <000219> <The shutdown sequence
has been initiated.>
此外,如果該命令執(zhí)行成功,weblogic.Admin 實(shí)用程序就會(huì)返回以下消息:
Server "MedRecManagedServer" was force shutdown successfully ...
如果 Admin Server 不可用,那么您可以直接將FORCESHUTDOWN 命令發(fā)送到被管理服務(wù)器,讓其自己關(guān)閉:
java weblogic.Admin -url t3://ManagedHost:7001
-username weblogic -password weblogic
FORCESHUTDOWN
如果您想編寫不需要用戶了解管理用戶名或口令的腳本,那么可以告訴weblogic.Admin 使用存儲(chǔ)在引導(dǎo)身份文件(即 boot.properties 文件)中的信息。要想這樣做,需要告訴 weblogic.Admin 到哪去找引導(dǎo)身份文件以及服務(wù)器的根目錄在什么位置,以便它能找到經(jīng)過加密的引導(dǎo)身份文件(缺省值為當(dāng)前目錄)所需的信息。下面這個(gè)例子通過引用一個(gè)引導(dǎo)身份文件提供了用戶憑證,并指定了服務(wù)器的根目錄,以便能從任何目錄調(diào)用它:
java Dweblogic.system.BootIdentityFile=c:mydomainoot.properties
-Dweblogic.RootDirectory=c:mydomain
weblogic.Admin -url t3://AdminHost:7001
FORCESHUTDOWN
BEA WebLogic Server 還提供了一個(gè)用于部署應(yīng)用程序的命令行實(shí)用程序,叫做 weblogic.Deployer。同 weblogic.Admin 一樣,該實(shí)用程序也是一個(gè)Java 程序,需要某些參數(shù)。weblogic.Deployer 的通用語法是: java weblogic.Deployer [options] [actions] [file(s)]
最重要的選項(xiàng)包括 Admin Server 的URL、具有部署特權(quán)的用戶的用戶名和口令、正在部署的應(yīng)用程序或組件的名稱,以及應(yīng)用程序或組件要部署到的目標(biāo)列表。正如您所預(yù)料的,最重要的操作是部署、重新部署和反部署。要想了解受支持的選項(xiàng)和操作的完整列表,請參閱 http://edocs.bea.com/wls/docs81/deployment/tools.html 處的 WebLogic Server 文檔。
要想將 MedRec 企業(yè)應(yīng)用程序檔案部署到我們的被管理服務(wù)器,可以使用表 1 所列出的命令。
正如 weblogic.Admin 一樣,可以使用 Java 系統(tǒng)屬性來指定 SSL 和引導(dǎo)身份文件信息(參閱表 2)。
要想了解關(guān)于 BEA WebLogic Server 命令行管理工具以及它們關(guān)聯(lián)的命令的完整列表,請參閱 http://edocs.bea.com 處的 WebLogic Server 在線文檔。
小結(jié)
本文展示了如何使用 WebLogic Server Administration Console,它用于管理 BEA WebLogic Server 以及部署和監(jiān)控部署在其上的應(yīng)用程序。然后,介紹了命令行工具 weblogic.Admin 和 weblogic.Deployer,它們從命令行接口提供了全范圍的管理功能。
在下一篇文章中,將討論 JMX 以及如何使用由 BEA WebLogic Server 提供的工具和腳本設(shè)施,BEA WebLogic Server 用于配置、管理以及監(jiān)控 WebLogic Server 應(yīng)用程序。在本系列文章的最后一期中,將研究用于構(gòu)建定制 JMX 程序、創(chuàng)建定制 Mbean 以及擴(kuò)充 Admin Console 的 Java API。
關(guān)于作者
Vadim Rosenberg 是 BEA WebLogic Server的產(chǎn)品銷售經(jīng)理。在加入 BEA 之前,Vadim 在商務(wù)軟件工程方面花費(fèi)了 13 年的時(shí)間,最近正在 Compaq Computers (Tandem Division) 開發(fā)一種容錯(cuò)且可伸縮性極強(qiáng)的 J2EE 框架。
Robert Patrick 是 BEA CTO Office的主管,還是 Mastering BEA WebLogic Server: Best Practices for Building and Deploying J2EE Applications 一書的合著者。 他已經(jīng)渡過了自己的幫助客戶用 BEA Tuxedo 和 BEA WebLogic Server 設(shè)計(jì)、構(gòu)建以及部署高性能、容錯(cuò)、關(guān)鍵任務(wù)分布式系統(tǒng)的職業(yè)生涯。