第一章 介紹與導(dǎo)覽
本文描述Weblogic Server的域以及如何配置域。域是WebLogic Server的基本管理單元。一個(gè)域可以包括一個(gè)或多個(gè)WebLogic Server實(shí)例以及相關(guān)資源,只需使用一個(gè)Administration Server進(jìn)行管理。
以下章節(jié)描述該指南的內(nèi)容與結(jié)構(gòu)——理解域配置。
文檔范圍與讀者
文檔向?qū)?br />
相關(guān)文檔
示例與指南
該發(fā)布版本中新的域特性
文檔范圍與讀者
文檔主要適用于基于一個(gè)或多個(gè)Weblogic server域開發(fā)和部署Web應(yīng)用的J2EE系統(tǒng)架構(gòu)師、應(yīng)用開發(fā)人員和系統(tǒng)管理員。
文檔的主題僅和軟件項(xiàng)目的設(shè)計(jì)與開發(fā)階段相關(guān),不涉及產(chǎn)品過程管理、監(jiān)控或者性能調(diào)整。對(duì)于這些主題的WebLogic Server文檔和資源鏈接,參見“相關(guān)文檔”。
文檔假定讀者熟悉J2EE,XML的基本概念以及應(yīng)用管理的一般概念。
文檔向?qū)?br />
本章“介紹與導(dǎo)覽”,介紹該指南的目的、結(jié)構(gòu)和上下文關(guān)系。
第二章“理解WebLogic Server域”介紹Weblogic Server域。
第三章“使用WebLogic工具配置域”,展示你可以用來修改域配置的幾種工具。
第四章“域配置文件”描述維護(hù)域和域的內(nèi)容的磁盤表現(xiàn)形式的配置與目錄。
第五章“管理配置變更”描述如何變更Weblogic Server的管理特性。
相關(guān)文檔
關(guān)于用于創(chuàng)建和配置Weblogic Server域的工具的更多信息,參見:
使用配置向?qū)?chuàng)建WebLogic域
WebLogic腳本工具
使用JMX部署可管理的應(yīng)用
WebLogic Server命令參考
管理控制臺(tái)在線幫助
關(guān)于其他系統(tǒng)管理任務(wù)的信息,參見系統(tǒng)管理文檔,尤其是:
設(shè)計(jì)和配置WebLogic Server環(huán)境
使用WebLogic Server集群
示例和向?qū)?br />
BEA系統(tǒng)公司為本文檔提供了和域配置、管理相關(guān)的以下代碼示例和指南:
BEA WebLogic Server的示例安裝(可選)于目錄WL_HOME/samples/server/examples/src/examples,WL_HOME是你安裝WebLogic Server的頂級(jí)目錄,這些示例也可以通過Windows開始菜單使用。集群示例會(huì)在BEA WebLogic Server集群指南示例中描述,指導(dǎo)你掌握使用WebLogic配置向?qū)Ш凸芾砜刂婆_(tái)來創(chuàng)建和配置一個(gè)新的server實(shí)例集群的整個(gè)過程。
本版中新的域特性
Weblogic Server 9.0在Weblogic Server域配置中引入了幾項(xiàng)重要變化:
config.xml的XML Schema
域目錄結(jié)構(gòu)
配置變更管理
config.xml的XML Schema
WebLogic Server域和實(shí)例配置的磁盤表現(xiàn)形式在本版本中有所不同。在原版本中,配置信息被保存在單個(gè)XML倉庫文件config.xml中,默認(rèn)位于user_projects/domains/domain_name目錄下。在本版的WebLogic Server中,config.xml文件符合XML Schema定義(用來驗(yàn)證域配置文件格式的有效性)。而且,config.xml融合了其他配置文件(符合各自的XML Schema)的配置信息。在本版中,config.xml默認(rèn)位于user_projects/domains/domain_name/config目錄下,config.xml核心文件涉及的輔助配置文件位于user_projects/domains/domain_name/config目錄的子目錄中。更多信息,參見第四章“域配置文件”。
域目錄結(jié)構(gòu)
本版中,Weblogic Server域在磁盤上的目錄結(jié)構(gòu)有了改變。域的父目錄命名為domains。域的配置信息保存在domains/domain_name/config目錄和config目錄的子目錄中。更多信息,參見“域目錄內(nèi)容”。
配置變更管理
WebLogic Server提供了一些新特性用來管理服務(wù)配置變更,這使你可以安全、可預(yù)知地實(shí)現(xiàn)分發(fā)某個(gè)域的配置變更。當(dāng)然這要求你在使用控制臺(tái)進(jìn)行配置變更前獲得管理員控制臺(tái)鎖。
WebLogic Server中的變更管理過程和數(shù)據(jù)庫事務(wù)有些類似。由管理服務(wù)器維護(hù)一個(gè)獨(dú)立的,可編輯的域配置表現(xiàn)形式,稱為編輯層。server實(shí)例并不涉及編輯層。相反,server實(shí)例使用只讀層來發(fā)現(xiàn)配置。為了開啟編輯過程,你應(yīng)當(dāng)可以獲得一個(gè)編輯層的鎖以防止其他人更改。當(dāng)你完成更改后,你保存并將其分發(fā)至域中的所有server實(shí)例。分發(fā)完成后,每一個(gè)server來決定自己是否接受該變更。一旦所有的server都接受該變更,則更新運(yùn)行的配置層,變更才完成。
現(xiàn)在的管理控制臺(tái)包括一個(gè)名為Change Center(變更中心)的區(qū)域。當(dāng)你使用管理控制臺(tái)進(jìn)行配置變更時(shí),你必須首先通過點(diǎn)擊Change Center的Lock & Make Changes(鎖且變更)獲得鎖。進(jìn)行期望的配置變更以后,然后可以在Change Center:
點(diǎn)擊Activate Changes(激活變更)接受更改,向域中的sever實(shí)例分發(fā),或者
點(diǎn)擊Undo All Changes(撤銷所有變更),釋放鎖。
WebLogic Server一般采用相同方式控制配置變更,無論變更是使用管理控制臺(tái)實(shí)現(xiàn),還是WebLogic 腳本工具、配置管理服務(wù)或者JMX API。
更多信息,參見第五章“管理配置變更”。
第二章 理解Weblogic Server域
以下章節(jié)介紹Weblogic Server域和域的內(nèi)容:
域是什么
組織域
域的內(nèi)容
域約束
域是什么?
一個(gè)Weblogic Server管理域是邏輯上相關(guān)的Weblogic Server資源組。域包括一個(gè)特殊的Weblogic Server實(shí)例,叫做管理服務(wù)器(Administration Server),這是你配置和管理域的所有資源的關(guān)鍵。通常,你配置的一個(gè)域會(huì)加入另外的WebLogic Server實(shí)例,叫作托管服務(wù)器(Managed Server)。你的Web應(yīng)用、EJB和其他資源會(huì)部署在托管服務(wù)器上,而管理服務(wù)器只是用于配置和管理。
多個(gè)托管服務(wù)器可以組織成集群(clusters),這使你能夠保持負(fù)載平衡和對(duì)于臨界的應(yīng)用提供失敗保護(hù),同時(shí)只使用一個(gè)管理服務(wù)器會(huì)使托管服務(wù)器實(shí)例的管理變得簡單。
組織域
如何將WebLogic Server裝置組織成域,這取決于你的業(yè)務(wù)需求。你可以基于系統(tǒng)管理員職責(zé)、應(yīng)用邊界或者server運(yùn)行的地理位置的不同定義多個(gè)域。與之相反,你也可以決定將所有WebLogic Server管理行為集中于一個(gè)域。
根據(jù)你特定的業(yè)務(wù)需求和系統(tǒng)管理實(shí)際,你可以按照如下標(biāo)準(zhǔn)決定如何組織你的域:
應(yīng)用的邏輯區(qū)分。比如,你可以有一個(gè)域用于類似購物車的終端用戶功能,另一個(gè)域用于后臺(tái)記賬。
物理位置。你可以為業(yè)務(wù)的不同地理位置和分支分別建域。
大小。你會(huì)發(fā)現(xiàn)域被組織成更小的單元可能會(huì)使不同的系統(tǒng)管理員管理效率更高。反之,你也會(huì)發(fā)現(xiàn)維護(hù)單個(gè)域或者少量的域,配置更容易保持一致。
一個(gè)域由一個(gè)管理服務(wù)器和一個(gè)或多個(gè)托管服務(wù)器組成,也可以只由單個(gè)孤立的server組成,既扮演管理服務(wù)器的角色又駐留應(yīng)用。
由分散的托管服務(wù)器組成的域:簡單的產(chǎn)品環(huán)境由幾個(gè)駐留應(yīng)用的托管服務(wù)器,一個(gè)執(zhí)行管理操作的管理服務(wù)器組成。在這種配置下,應(yīng)用和資源部署在各自的托管服務(wù)器中;類似地,訪問應(yīng)用的客戶端與各自的托管服務(wù)器連接。
如果產(chǎn)品環(huán)境對(duì)增強(qiáng)應(yīng)用性能、吞吐量或者可用性有要求,那么應(yīng)該將兩個(gè)或者更多的托管服務(wù)器配置成集群。機(jī)群允許多個(gè)托管服務(wù)器作為單個(gè)個(gè)體駐留應(yīng)用和資源。關(guān)于在孤立的和集群托管服務(wù)器之間差異的更多信息,參見“托管服務(wù)器和托管服務(wù)器集群”。
孤立的server域:對(duì)于開發(fā)或測試環(huán)境而言,你可能想在部署單個(gè)應(yīng)用和server獨(dú)立于產(chǎn)品域中的server。這種情況下,你可以部署一個(gè)簡單域,只由單個(gè)server實(shí)例組成,既作為管理服務(wù)器,又駐留你開發(fā)的應(yīng)用。你用WebLogic Server安裝的wl_server域就是一個(gè)孤立server域的例子。
注意:在產(chǎn)品環(huán)境中,BEA建議你只在域中的托管服務(wù)器部署應(yīng)用,管理服務(wù)器應(yīng)當(dāng)只負(fù)責(zé)管理任務(wù)。
域的內(nèi)容
盡管域的范圍與目的會(huì)有很大差異,但是大多數(shù) WebLogic Server域都包含本章節(jié)中描述的組件。
下圖展示了產(chǎn)品環(huán)境,包括一個(gè)管理服務(wù)器,三個(gè)孤立的托管服務(wù)器和三個(gè)托管服務(wù)器組成的集群。
管理服務(wù)器
每個(gè)Weblogic Server域都必須有一個(gè)server實(shí)例作為管理服務(wù)器。你使用管理服務(wù)器(編程或者通過管理服務(wù)器)來配置域中的所有其他server實(shí)例和資源。
管理服務(wù)器的角色
在啟動(dòng)域的托管服務(wù)器之前,應(yīng)先啟動(dòng)管理服務(wù)器。當(dāng)你啟動(dòng)一個(gè)孤立或集群托管服務(wù)器時(shí),它會(huì)按配置信息與管理服務(wù)器相聯(lián)。這種方式下,管理服務(wù)器在整個(gè)域配置中充當(dāng)核心控制體。
當(dāng)管理服務(wù)器啟動(dòng)時(shí),加載域的config.xml文件,除非你在創(chuàng)建域時(shí)指定另一個(gè)目錄存儲(chǔ)config.xml。
BEA_HOME/user_projects/domains/mydomain/config
這里mydomain是特定域的目錄,名稱與域相同。config.xml引用的其他配置文件,位于域的config目錄的子目錄下。
管理服務(wù)器每一次成功啟動(dòng)后,將在域目錄中創(chuàng)建一份命名為config-booted.jar的備份配置文件。萬一配置文件在server實(shí)例生命周期內(nèi)有損壞,有可能恢復(fù)原先的配置。
如果管理服務(wù)器出錯(cuò)會(huì)發(fā)生什么?
域的管理服務(wù)器出錯(cuò)不會(huì)影響域中的托管服務(wù)器的操作。如果域的管理服務(wù)器變得不可用,而它所管理的server實(shí)例——集群或者其他方式——仍在運(yùn)行,那么那些托管服務(wù)器將繼續(xù)運(yùn)行。如果該域包含集群server實(shí)例,那么由域配置支持的負(fù)載平衡和失敗性能保持可用,即使管理服務(wù)器出錯(cuò)。如果域的管理服務(wù)器停止運(yùn)行而托管服務(wù)器繼續(xù)運(yùn)行,那么每一個(gè)托管服務(wù)器會(huì)周期性地嘗試重新連接管理服務(wù)器,周期由ServerMBean屬性AdminReconnectIntervalSecs指定。AdminReconnectIntervalSecs默認(rèn)為10秒。
如果管理服務(wù)器因?yàn)橹鳈C(jī)的硬件或軟件錯(cuò)誤而失敗,同一臺(tái)機(jī)器的其它server實(shí)例都可能受到同樣的影響。然而,管理服務(wù)器自身的失敗不會(huì)中斷域的托管服務(wù)器的運(yùn)行。而且即使管理服務(wù)器不在運(yùn)行狀態(tài),你也可以啟動(dòng)托管服務(wù)器。這種情況下,托管服務(wù)器使用配置文件的本地拷貝來作為它的啟動(dòng)配置,然后周期性地向管理服務(wù)器作連接嘗試,連接后利用管理服務(wù)器來同步配置狀態(tài)。
對(duì)于重啟管理服務(wù)器的指令,參見“管理服務(wù)器啟動(dòng)與關(guān)閉”。
托管服務(wù)器和托管服務(wù)器集群
在域中,非管理服務(wù)器的server實(shí)例,指向托管服務(wù)器。托管服務(wù)器駐留構(gòu)成你應(yīng)用的組件和相關(guān)資源,比如JSP和EJB。當(dāng)某個(gè)托管服務(wù)器啟動(dòng)后,它會(huì)連接域的管理服務(wù)器來獲得配置和部署設(shè)置。
注意:即使管理服務(wù)器不可用,域中的托管服務(wù)器也可以獨(dú)立于管理服務(wù)器啟動(dòng)。更多信息參見“管理server啟動(dòng)與關(guān)閉”中的“避免server失敗與恢復(fù)”。
兩個(gè)或更多的托管服務(wù)器可以配置成一個(gè)WebLogic Server集群,來增加應(yīng)用的可伸縮性與可用性。在WebLogic Server集群中,大多數(shù)資源與服務(wù)平均部署給每一個(gè)托管服務(wù)器(與單個(gè)托管服務(wù)器相反),來使失敗與負(fù)載平衡。要想了解哪種組件類型和服務(wù)可以進(jìn)行集群(部署給集群中的所有server實(shí)例),參見“使用WebLogic Server集群”中的“理解WebLogic Server集群”。
你可以創(chuàng)建一個(gè)非集群的托管服務(wù)器,然后通過配置有關(guān)server實(shí)例和集群的參數(shù)將其加入集群。你也可以通過重新配置參數(shù)從集群中刪除某個(gè)托管服務(wù)器。在集群與非集群托管服務(wù)器之間的根本區(qū)別在于對(duì)失敗和負(fù)載平衡的支持。這些特性僅在集群托管服務(wù)器中可用。
你對(duì)于可伸縮性與可靠性的要求將決定你是否采用集群托管服務(wù)器。比如,如果你的應(yīng)用不常遇到易變的加載,應(yīng)用服務(wù)中可能的中斷也是可以接受的,那么就沒有必要采用集群。
關(guān)于WebLogic Server集群的好處與性能的更多信息,參見“使用WebLogic Server集群”中的“理解WebLogic Server集群”。單個(gè)域可以包含多個(gè)WebLogic Server集群,同樣多個(gè)托管服務(wù)器也可以不被配置成集群。
資源與服務(wù)
除了管理服務(wù)器和托管服務(wù)器之外,域還包括托管服務(wù)器所需的資源和服務(wù)及部署在該域上的應(yīng)用。
域配置包括域運(yùn)行的網(wǎng)絡(luò)計(jì)算機(jī)環(huán)境信息,比如:
機(jī)器定位依靠硬件上某個(gè)特定的物理片段來識(shí)別。機(jī)器定位被用來關(guān)聯(lián)駐留托管服務(wù)器的計(jì)算機(jī)。該信息由節(jié)點(diǎn)管理器(Node Manager)重啟一臺(tái)出錯(cuò)的托管服務(wù)器,集群的托管服務(wù)器選擇存儲(chǔ)重復(fù)的會(huì)話數(shù)據(jù)的最好位置時(shí)使用。關(guān)于節(jié)點(diǎn)管理器的更多信息,參見“設(shè)計(jì)與配置WebLogic Server環(huán)境”的“使用節(jié)點(diǎn)管理器控制服務(wù)器”。
網(wǎng)絡(luò)通道,一個(gè)可以用來定義默認(rèn)端口、協(xié)議和協(xié)議設(shè)置的可選資源。在創(chuàng)建一個(gè)網(wǎng)絡(luò)通道后,可以將它分配給域中任意一個(gè)托管服務(wù)器和集群。更多信息,參見“設(shè)計(jì)與配置WebLogic Server環(huán)境”中的“配置網(wǎng)絡(luò)資源”。
域配置還包括與駐留在域中應(yīng)用相關(guān)的資源和服務(wù)信息。這些資源和服務(wù)的例子包括:
應(yīng)用組件,比如EJB
連接器
JDBC連接池
JMS server
啟動(dòng)類
資源和服務(wù)可能被限制于域中一個(gè)或多個(gè)托管服務(wù)器,而不是對(duì)于整個(gè)域可用。你可以選擇托管服務(wù)器或者集群進(jìn)行部署資源與服務(wù)。
域約束
WebLogic Server環(huán)境可以由單個(gè)域組成,包括駐留應(yīng)用所需的所有托管服務(wù)器,也可以是多個(gè)域。你可以選擇創(chuàng)建多個(gè)域,根據(jù)組織單元、系統(tǒng)管理員職責(zé)、應(yīng)用邊界或者其它要考慮的事項(xiàng)來劃分。在設(shè)計(jì)域配置時(shí),注意以下約束:
每一個(gè)域都需要自身的管理服務(wù)器執(zhí)行管理操作。當(dāng)你使用管理控制臺(tái)執(zhí)行管理和監(jiān)控任務(wù)時(shí),你可以在域中來回切換,同時(shí)你會(huì)連接不同的管理服務(wù)器。
同一個(gè)集群中的所有托管服務(wù)器必須位于相同的域,你不能將集群拆分至多個(gè)域。
同一個(gè)域中的所有托管服務(wù)器運(yùn)行的WebLogic Server軟件版本必須相同。域中的管理服務(wù)器可以和托管服務(wù)器運(yùn)行相同的版本,也可以是更新的版本。
你不能在域中共享配置資源與子系統(tǒng)。比如,如果你在一個(gè)域中創(chuàng)建了一個(gè)JDBC連接池,你就不可能在另一個(gè)域中的托管服務(wù)器或集群中使用。代之,你必須在第二個(gè)域中創(chuàng)建一個(gè)類似的連接池。
第三章 使用Weblogic工具配置域
WebLogic包括了你可以用來創(chuàng)建、修改或者復(fù)制域配置的一系列工具。包括以下工具:
域配置向?qū)А蚺渲孟驅(qū)莿?chuàng)建一個(gè)新的域或集群的推薦工具。關(guān)于使用域配置向?qū)У母嘈畔ⅲ瑓⒁?#8220;使用配置向?qū)?chuàng)建WebLogic域”。
WebLogic Server管理控制臺(tái)——管理控制臺(tái)是管理服務(wù)器的圖形化用戶界面(GUI)。管理控制臺(tái)描述參見“管理控制臺(tái)在線幫助”。
WebLogic腳本工具(WLST)——你可以使用命令行腳本接口來創(chuàng)建、管理和維護(hù)WebLogic Server配置變更。WebLogic腳本工具描述參見“WebLogic腳本工具”。
WebLogic Server應(yīng)用編程接口(API)—— 你可以使用WebLogic Server提供的API編寫程序修改配置屬性。JMX API描述參見“使用JMX開發(fā)可管理的應(yīng)用”。
WebLogic Server命令行工具——該工具允許你創(chuàng)建腳本來自動(dòng)進(jìn)行域管理。關(guān)于該工具的更多信息,參見“WebLogic Server命令參考”。
對(duì)于大多數(shù)方式而言,要修改域配置域的管理服務(wù)器必須運(yùn)行。然而,你如果使用 WLST 來進(jìn)行域配置變更不需要運(yùn)行管理服務(wù)器。這種情況下,WLST造成的變更也不會(huì)立即生效直到管理服務(wù)器和托管服務(wù)器重啟。
第四章 域配置文件
本章節(jié)描述如何在文件系統(tǒng)中表示域。它包括以下部分:
配置文件概覽
config.xml
域域目錄概覽
域目錄內(nèi)容
域配置文件概覽
WebLogic Server管理和配置服務(wù)通過Java管理擴(kuò)展(JMX)API來訪問。域的配置保存在域目錄下的配置目錄中。這些配置目錄中的文件用來持久化存儲(chǔ)WebLogic Server在使用JMX API運(yùn)行期間創(chuàng)建和修改的托管對(duì)象。config.xml的目的是存儲(chǔ)托管配置對(duì)象的變更以使得WebLogic Server重啟時(shí)可以訪問。
域的核心配置文件為domain_name/config/config.xml文件。它指定域的名稱和域中每一個(gè)server實(shí)例、集群、資源和服務(wù)的配置參數(shù)。域的一些主要子系統(tǒng)配置保存在domain_name/config目錄的子目錄中。
域目錄還包括你用來啟動(dòng)域的管理服務(wù)器和托管服務(wù)器的默認(rèn)腳本文件。
config.xml
域的核心配置文件為/domains/domain_name/config/config.xml文件。它指定域的名稱和域中每一個(gè)server實(shí)例、集群、資源與服務(wù)的配置參數(shù)。
config.xml文件符合XML Schema,URL為 http://www.bea.com/ns/weblogic/config。schema位于文件系統(tǒng)中的JAR文件BEA_HOME/weblogic90/server/lib/schema/configuration-binding.jar中,即META-INF/schemas/schema-0.xsd。XML編輯工具可以使用XML Schema來修改和驗(yàn)證config.xml文件。
編輯配置文件
大多數(shù)情況下,你不應(yīng)該直接修改config.xml或其他配置文件,而應(yīng)該使用管理控制臺(tái)或者用第三章“使用WebLogic工具配置域”中列出的某個(gè)工具來修改域配置。配置變更將會(huì)映射到配置文件中。
如果你選擇放置配置文件,安裝的其他組件在源控制之下(使用WLST管理),直接修改配置文件可能是合適的。
警告:當(dāng)WebLogic Server運(yùn)行時(shí)你不能編輯配置文件,因?yàn)閃ebLogic Server會(huì)周期性地重寫該文件。你的更改將會(huì)丟失,也可能造成WebLogic Server失敗,這取決于你的平臺(tái)。
WebLogic Server配置文件是格式友好的XML文件,因此它有可能使用XML解析應(yīng)用比如 Apache Xerces, or JDOM來使某個(gè)重復(fù)性的變更腳本實(shí)現(xiàn)。
確保完整測試所創(chuàng)建的腳本,在作變更之前對(duì)每一個(gè)配置文件作備份性拷貝。
輔助配置文件
在原版本中,config.xml文件存放了所有配置信息。新版本中,幾個(gè)WebLogic Server子系統(tǒng)被配置在輔助配置文件中,由核心的config.xml來引用。這些輔助配置文件位于/domains/domain_name/config目錄的子目錄中。關(guān)于輔助配置文件的更多信息,參見“域目錄概覽”和“域目錄內(nèi)容”。
配置文件壓縮包
WebLogic Server對(duì)配置文件作備份拷貝。萬一配置變更需要推倒重來或者配置文件被破壞(當(dāng)然這種情況不太可能),這使得恢復(fù)很容易。當(dāng)管理服務(wù)器啟動(dòng)時(shí),它將配置文件保存在一個(gè)命名為config-booted.jar的JAR文件中。當(dāng)你變更配置文件時(shí),舊文件以JAR文件的形式保存在域目錄下的configArchive目錄中,命名帶數(shù)字序列,比如config-1.jar。
域目錄概覽
圖4-1是域目錄樹型結(jié)構(gòu)的概覽。 domain-name 、deployment-name和server-name目錄名稱不是字面所示,實(shí)際上替換成任何指定的名稱都是可以的;其他的目錄名稱則是字面所示。概覽只顯示目錄,不含目錄內(nèi)的文件。任何實(shí)際的特定域目錄樹,整個(gè)結(jié)構(gòu)都可能不會(huì)是這樣。
域目錄內(nèi)容
本節(jié)描述域目錄和子目錄的內(nèi)容,以斜體表示的目錄名稱不是實(shí)際的名稱,而是要以適當(dāng)?shù)木唧w名稱來替代,非斜體的名稱則是字面上所示的名稱。
domain-name
該目錄的名稱為域的名稱。
applications
該目錄提供了一種在部署服務(wù)器上部署應(yīng)用的快速方式。當(dāng)Weblogic Server實(shí)例以開發(fā)模式運(yùn)行時(shí),它會(huì)自動(dòng)部署你放置在該目錄的任何應(yīng)用與模塊。
你放置在目錄的文件可以是:
一個(gè)J2EE應(yīng)用
一個(gè)EAR文件
一個(gè)WAR、EJB JAR、RAR或者CAR的壓縮模塊
一個(gè)應(yīng)用或者一個(gè)模塊的解壓目錄
bin
該目錄包括了一些用來啟動(dòng)或終止域中的管理服務(wù)器和托管服務(wù)器進(jìn)程的腳本。它也可以包括一些其他廣義上的域腳本,比如啟動(dòng)和終止數(shù)據(jù)庫管理系統(tǒng)、全文檢索引擎進(jìn)程等的腳本。更多信息,參見管理server啟動(dòng)和終止。
config
該目錄包含域的當(dāng)前配置和部署狀態(tài),核心域配置文件config.xml即位于本目錄中。
config/deployments
保存域部署應(yīng)用的目錄。
config/deployments/library_modules
保存類庫模塊的目錄,也就是說,該目錄中的任何文件都將以類庫模塊自動(dòng)注冊(cè)。
config/deployments/deployment-name-1
該目錄包含一個(gè)應(yīng)用或者可發(fā)布的模塊。它所含的子級(jí)目錄可以包含一個(gè)壓縮文件(EAR或WAR),一個(gè)部署清單,擴(kuò)展描述符等等。
config/diagnostics
該目錄包含WebLogic診斷服務(wù)(WebLogic Diagnostic Service)系統(tǒng)模塊。更多信息,參見“理解WebLogic診斷服務(wù)”。
config/jdbc
該目錄包含JDBC系統(tǒng)模塊:所有JDBC模塊都可以通過JMX直接配置(和JSR-88不同)。更多信息,參見“數(shù)據(jù)庫連接(JDBC)”。
config/jms
該目錄包含JMS系統(tǒng)模塊:所有JMS模塊都可以通過JMX直接配置。更多信息,參見“消息與數(shù)據(jù)庫連接(JDBC)”。
config/nodemanager
該目錄保存與節(jié)點(diǎn)管理器連接的的配置信息。更多信息,參見“設(shè)計(jì)與配置WebLogic Server環(huán)境”中的“使用節(jié)點(diǎn)管理器管理服務(wù)”。
config/security
該目錄包含安全框架系統(tǒng)模塊。包含了當(dāng)前域的每一種安全供應(yīng)器的安全供應(yīng)器配置擴(kuò)展。更多信息,參見理解“WebLogic 安全”。
config/startup
該目錄包含含啟動(dòng)計(jì)劃的系統(tǒng)模塊。啟動(dòng)計(jì)劃被用來生成shell腳本,作為server啟動(dòng)的一部分。
configArchive
該目錄包含一組用于保存域配置狀態(tài)的JAR文件。在未決的配置變更激活前,域的當(dāng)前配置狀態(tài),包括config.xml文件和其他相關(guān)文件,保存在帶版本號(hào)的JAR文件中,命名成config.jar#1,config.jar#2等等。
帶版本號(hào)的JAR文件的最大數(shù)量由DomainMBean的archiveConfigurationCount屬性指定。一旦達(dá)到最大數(shù),在新版本創(chuàng)建之前刪除最舊的版本。
lib
放置在該目錄中的任何JAR文件在sever的Java虛擬機(jī)啟動(dòng)時(shí)都會(huì)添加至域中每一個(gè)server實(shí)例的系統(tǒng)classpath。
pending
該目錄包含的域配置文件表示已請(qǐng)求,但還沒有激活的配置變更。一旦配置變更被激活,該目錄中的配置文件將被刪除。更多信息,參見“管理配置變更”。
security
該目錄保存的安全相關(guān)文件對(duì)于域中的每一個(gè)WebLogic Server實(shí)例來說都是相同的。
SerializedSystemIni.dat
該目錄還保存只有域管理服務(wù)器需要的安全相關(guān)文件:
DefaultAuthorizerInit.ldift
DefaultAuthenticatorInit.ldift
DefaultRoleMapperInit.ldift
更多信息,參見“理解WebLogic安全”。
servers
該目錄為域中每一個(gè)WebLogic Server實(shí)例設(shè)置一個(gè)子目錄。
servers/server-name
該目錄為server目錄,名稱和WebLogic Server實(shí)例的名稱相同。
servers/server-name/bin
該目錄存放可執(zhí)行的或shell文件,對(duì)于不同的server可能會(huì)不同。server環(huán)境腳本(setServerEnv.sh或setServerEnv.cmd)是位于此處的一個(gè)文件示例,因?yàn)樗軈^(qū)分一個(gè)WebLogic Server實(shí)例與下一個(gè)實(shí)例的不同,這取決于server實(shí)例是否有自己的啟動(dòng)計(jì)劃。
servers/server-name/cache
該目錄存放包含緩存數(shù)據(jù)的目錄和文件。這里“緩存(cached)”表示該數(shù)據(jù)是其他數(shù)據(jù)的拷貝,可能是進(jìn)程中的形式(已編譯,已翻譯或重新格式化的)。
servers/server-name/cache/EJBCompilerCache
該目錄為已編譯的EJB緩存。
servers/server-name/data
和臨時(shí)的、緩存的或者歷史信息相反,該目錄存放的文件維護(hù)持久化的預(yù)服務(wù)狀態(tài),而不是安全狀態(tài),用于運(yùn)行WebLogic Server實(shí)例。該目錄中的文件非常重要,必須存在于WebLogic Server實(shí)例開始,停止,崩潰,重啟或升級(jí)至新版本的整個(gè)過程中。
servers/server-name/data/ldap
該目錄存放內(nèi)嵌的LDAP數(shù)據(jù)庫。WebLogic Server實(shí)例的運(yùn)行時(shí)安全狀態(tài)持久化于該目錄。
servers/server-name/data/store
該目錄存放JMS持久化存儲(chǔ)。對(duì)于每一個(gè)持久化存儲(chǔ),都有一個(gè)子目錄存放表示持久化存儲(chǔ)的文件。子目錄的名稱為持久化存儲(chǔ)的名稱。照例有一個(gè)存儲(chǔ)命名為default。
servers/server-name/logs
該目錄存放日志和診斷信息。實(shí)際上只是一些歷史信息,對(duì)于server的運(yùn)行并非至關(guān)重要,可以刪除(不過至少WebLogic Server實(shí)例應(yīng)該終止)而不影響正確的運(yùn)行。然而,這些信息對(duì)于調(diào)試和檢查相當(dāng)有用,如果沒有好的理由不應(yīng)當(dāng)刪除。
servers/server-name/logs/diagnostic_images
該目錄存放WebLogic診斷服務(wù)(WebLogic Diagnostic Service)的Server圖片捕獲器(Server Image Capture)組件創(chuàng)建的信息。更多信息,參見“理解WebLogic診斷服務(wù)”。
servers/server-name/logs/jmsServers
該目錄為WebLogic Server實(shí)例中的每一個(gè)JMS服務(wù)提供一個(gè)子目錄。每一個(gè)那樣的子目錄包含JMS服務(wù)的日志。子目錄的名稱為JMS服務(wù)的名稱。
servers/server-name/logs/connector
該目錄是連接器模塊(JCA資源適配器)日志的默認(rèn)基目錄。
servers/server-name/security
該目錄存放安全相關(guān)文件,每一個(gè)WebLogic Server實(shí)例都可能不同。文件boot.properties是位于此處的一個(gè)文件示例,因?yàn)樗軈^(qū)分一個(gè)server實(shí)例與下一個(gè)實(shí)例的不同。該目錄還維護(hù)與SSL key相關(guān)的文件。
servers/server-name/tmp
該目錄存放server實(shí)例運(yùn)行時(shí)創(chuàng)建的臨時(shí)目錄與文件。server運(yùn)行時(shí)該目錄中的文件應(yīng)當(dāng)保留,但可以在server實(shí)例終止后隨意刪除。
第五章 管理配置變更
為了提供一個(gè)安全、可預(yù)期的方式來分發(fā)域的配置變更,WebLogic Server采用了大致類似于數(shù)據(jù)庫事務(wù)的變更管理進(jìn)程。域的配置在文件系統(tǒng)中表示為一組XML配置文件,核心為config.xml文件,在運(yùn)行時(shí)表示為配置MBean(Configuration MBeans)樹。當(dāng)你編輯域配置時(shí),你實(shí)際上編輯的是分離的管理服務(wù)器的配置MBeans樹。要開始編輯過程,你應(yīng)獲得編輯樹的鎖以阻止其他人進(jìn)行變更。完成變更后,保存變更。不過變更不會(huì)生效直到你激活它們,分發(fā)給域中的所有server實(shí)例。激活變更后,每一個(gè)server都決定是否接受變更。如果所有server都可以接受該變更,則更新運(yùn)行著的配置層,變更完成。
注意WebLogic Server的變更管理過程適用于域的變更和server配置數(shù)據(jù),不適用于安全或應(yīng)用數(shù)據(jù)。
關(guān)于如何通過JMX和配置MBean來實(shí)現(xiàn)配置變更的更多詳細(xì)信息,參見“使用JMX開發(fā)可管理的應(yīng)用”中的“理解WebLogic Server MBeans”
如第三章“使用WebLogic工具配置域”中的描述,你可以使用一系列不同的WebLogic Server工具進(jìn)行配置變更:
管理控制臺(tái)
WebLogic 腳本工具
JMX API
無論你使用哪一個(gè)工具進(jìn)行配置變更,WebLogic Server都采用大體相同的方式來處理變更過程。
以下章節(jié)描述配置變更管理:
管理控制臺(tái)的變更管理
配置變更管理過程
配置管理狀態(tài)圖
管理控制臺(tái)的變更管理
WebLogic管理控制臺(tái)將配置變更管理過程集中于Change Center:
如果你想使用管理控制臺(tái)進(jìn)行配置變更,你必須先點(diǎn)擊Change Center中的Lock & Edit(鎖定并編輯)按鈕。當(dāng)你點(diǎn)擊Lock & Edit后,你會(huì)獲得域中所有server的配置MBean的可編輯層(編輯樹)的鎖。
在你使用管理控制臺(tái)進(jìn)行配置變更后,在適當(dāng)?shù)捻撁纥c(diǎn)擊Save(保存)(某些情況下為Finish(完成)),這些不會(huì)使變更立即生效,而是在你點(diǎn)擊Save時(shí),將變更保存至編輯樹,domain-name/pending/config.xml文件和相關(guān)的配置文件。只有在你點(diǎn)擊Change Center的Activate Changes(激活變更)時(shí)變更才會(huì)生效,此時(shí),配置變更分發(fā)至域中的每一個(gè)server。只有每一個(gè)server都接受該變更,變更才會(huì)生效。如果有任何server不接受該變更,那么域中的所有server的所有變更全部回滾。變更保持為未決狀態(tài),你既可以編輯該未決變更以解決問題或者恢復(fù)未決變更。
配置變更管理過程
以下步驟詳細(xì)描述該過程,從你首先導(dǎo)入域的管理服務(wù)器開始:
1.服務(wù)器啟動(dòng)時(shí)讀取域配置文件,包括config.xml文件和config.xml文件涉及的所有附屬配置文件,使用這些數(shù)據(jù)對(duì)隨后的MBean樹進(jìn)行實(shí)例化:
–一個(gè)配置 MBean的只讀樹包含管理服務(wù)器的當(dāng)前資源配置。
–域中所有服務(wù)器的所有配置 MBean的可編輯樹。
注意:管理服務(wù)器也會(huì)實(shí)例化一個(gè)運(yùn)行時(shí)MBean樹和一個(gè)域運(yùn)行時(shí)MBean樹,但是這些不用于配置管理。
2. 按以下步驟開始配置變更:
a. 獲得當(dāng)前配置鎖。
b. 使用你選擇的工具(管理控制臺(tái),WLST,JMX API等),按你的要求變更。
c. 將變更保存至config.xml文件的未決版本。
3. 配置管理器服務(wù)將來自編輯MBean樹的所有數(shù)據(jù)保存成一份獨(dú)立的配置文件,目錄名為pending。參見圖5-2。
pending目錄直接位于域的根目錄下。比如說,如果你的域命名為mydomain,那么未決的config.xml文件的默認(rèn)路徑名為mydomain/pending/config.xml。
4. 進(jìn)行其它變更或者取消已做出的變更。
5. 當(dāng)你準(zhǔn)備激活域的變更時(shí),使用管理控制臺(tái)Change Center的Activate Changes按鈕或者使用ConfigurationManagerMBean。
激活變更(參見圖 5-3):
a. 對(duì)于域的每一個(gè)server實(shí)例,配置管理器服務(wù)將未決配置文件拷貝至server的根目錄下的pending目錄。
如果托管服務(wù)器和管理服務(wù)器共享根目錄,ConfigurationManagerMBean不必拷貝未決的配置文件,托管服務(wù)器直接使用管理服務(wù)器的未決文件。
b. 每一個(gè)server實(shí)例將它的當(dāng)前配置和未決文件中的配置進(jìn)行比較。
c. 每一個(gè)server內(nèi)部的子系統(tǒng)將對(duì)自身是否能接受新配置進(jìn)行投票。
只有要任一子系統(tǒng)表示它不能接受該變更,整個(gè)的激活過程將回滾,ConfigurationManagerMBean拋出異常。你可以修改變更,再次進(jìn)行變更激活,或者放棄鎖,編輯配置MBean樹和未決配置文件恢復(fù)至只讀配置MBean樹和配置文件的配置。
d. 如果所有server的所有子系統(tǒng)都能接受該變更,配置管理器服務(wù)將域的每一個(gè)server實(shí)例的只讀配置文件替換成未決配置文件。
e. 每一個(gè)server實(shí)例都會(huì)更新bean和只讀配置MBean樹以和新的配置文件的變更保持一致。
f. 然后未決配置文件從pending目錄中刪除。
6. 你可以保持鎖以進(jìn)行其它的變更或者釋放鎖以使其他人可以更新配置。你也可以設(shè)置超時(shí)時(shí)限使配置管理器服務(wù)放棄鎖。
注意:配置變更鎖不會(huì)防止你在使用相同的管理員賬號(hào)造成的配置編輯沖突。比如,如果你使用管理控制臺(tái)獲得配置變更鎖,然后以相同的用戶帳號(hào)使用WebLogic腳本工具,你將訪問的是在管理控制臺(tái)中打開的相同的編輯會(huì)話,你不會(huì)因?yàn)槭褂媚_本工具而被鎖定。由于這可能造成配置變更的混亂和沖突,這不是一種受推薦的手段。你應(yīng)該通過為每一個(gè)管理員身份的用戶維護(hù)一個(gè)獨(dú)立的管理員賬號(hào)來減少發(fā)生這種情況是造成的風(fēng)險(xiǎn)。不過如果你有使用相同的用戶帳號(hào)的多個(gè)相同腳本實(shí)例,相同的問題仍然會(huì)發(fā)生,
處理變更沖突
這種情況,你保存的多個(gè)變更沒有被激活,某個(gè)變更會(huì)使前一個(gè)變更無效,變更管理器服務(wù)需要你在保存變更前手動(dòng)解決該無效問題。
配置管理狀態(tài)圖
配置管理服務(wù)遵循圖 5-4中描述的狀態(tài)轉(zhuǎn)換。