創建
WebLogic
配置
/
域
域是一組邏輯上相關的
WebLogic Server
資源,您可以把它當作單個管理單元進行管理。域將所有的資源和應用程序信息保存在一個基于
XML
的配置庫中。為了在
WebLogic Server
上部署并運行應用程序,首先要創建域。
?
推薦使用域配置向導作為創建新域的工具。如果您準備編寫腳本來創建域,推薦使用slient模式的域配置向導這個工具。也可以從所提供的“開箱即用”的域模板或定制的域模板來創建WebLogic Server域。
?
為了創建定制的域模板,請使用配置模板生成器,它是一個單機的Java應用程序,能夠讓您創建定制的配置和擴展。您可以使用這些配置和擴展來創建和更新域。
域配置向導具有以下屬性:
·??
向導會引導您完成針對目標環境創建或擴展域的過程。
·??
向導可以使用
OOB
預定義的域模板或定制域模板創建或擴展域。
·??
向導將創建
config.xml
文件,建立基本的安全性,構造啟動腳本,等等。
·??
可以使用
graphical
、
console
或
silent
模式啟動向導。
要以
graphical
模式啟動向導,請運行以下命令之一:
域配置模板生成器具有以下屬性:
?
·??
向導會引導您完成創建或擴展配置模板
(JAR file)
的過程。
·??
配置向導可以使用已創建的配置(域)模板來創建域。
只能以
graphical
模式啟動配置模板生成器。
要啟動配置模板生成器,請運行以下命令之一:
技巧
·??
如果
WebLogic Domain/Configuration
分布在多臺物理機器上,那么應該只能在管理服務器硬件(機器)上運行域配置向導。
·??
并不要求一定在托管服務器硬件上運行域配置向導。
?
·??
在
WebLogic Server
安裝目錄之外創建
WebLogic
域
(
默認情況下,所創建的域位于
%BEA_HOME%Ser_projectsdomains )
。
·??
為管理服務器創建啟動腳本時,如果腳本
(startWebLogic.cmd/sh)
沒有調用域目錄中的
weblogic.Server
類,使用這個命令行選項來指定域的位置:
-Dweblogic.RootDirectory=path
。
·??
啟動托管服務器
(startManagedWebLogic.cmd/sh)
時,如果進行設置的話,
-Dweblogic.RootDirectory
將被設置為服務器根目錄,該目錄將被用于存儲文件,比如日志文件和托管服務器獨立(
managed-server independence
,
MSI
)文件。
服務器啟動
?
管理服務器從配置庫(config.xml)加載所有配置。所有相關的托管服務器必須在啟動期間連接到運行中的管理服務器。獨立的托管服務器可以從本地庫(msi-config.xml)加載配置。
?
如果WebLogic運行在裝有Unix操作系統的計算機上,您可以為WebLogic Server進程分配一個UID或GID,以便在計算機執行所有優先的啟動操作之后,以root用戶的身份進行綁定。如果WebLogic Server用戶想要綁定到更高的端口(>1024),則無需root權限。
技巧
編寫使服務器啟動自動化的腳本時,考慮以下因素:
·??
在域中,必須在任何相關托管服務器之前啟動管理服務器。
·??
當把托管服務器作為相關服務器啟動時,它連接到管理服務器,以便下載配置。
·??
當把托管服務器作為獨立服務器啟動時,檢查
msi-config.xml
文件是否被存儲在服務器根目錄中。
·??
在
Unix
中,使用
'nohup'
運行
WebLogic Server
啟動腳本,以保證即使您注銷以后,服務器依然在后臺運行。
·??
在
OS
中,為安裝和啟動服務器創建一個
WebLogic Server
用戶。
·??
存儲加密后的用戶身份,使用
boot.properties
文件來避免啟動腳本中出現硬編碼的用戶身份。
·??
當把服務器綁定到較低端口
(<1024)
時(這需要
root
權限),使用
WebLogic UNIX
機器配置來綁定
UID
或
GID
。
·??
為了使
WebLogic
域中的管理服務器在機器重啟期間能夠自動重啟,使用操作系統提供的
daemon
進程功能。
o??????????????
Windows
服務
o??????????????
UNIX daemon
進程
·??
當您使用域配置向導創建域時,域中的管理服務器可以被當成服務。
·??
此外,可以使用位于域文件夾中的
installservice.cmd
和
uninstallservice.cmd
腳本在
Windows Service Control Manager (SCM)
中添加或刪除服務。
·??
如果管理服務器和托管服務器是同一臺機器,配置管理服務器進程和托管服務器進程之間的
OS
級服務相關性。
·??
配置
rc
腳本,以便在正確的運行級別上添加
WebLogic
啟動命令。
啟動和關機類
可以把
WebLogic Server
配置為在啟動和正常關機過程中調用類。在服務器初始化所有子系統之后和它給客戶端訪問開放端口之前,加載并執行啟動類。類似地,在服務器啟動正常關機進程之前加載關機類。和應用程序文件不同,必須手動地使啟動和關機類在已部署服務器地本地
classpath
中可用。
技巧
·??
在啟動期間,使服務器級的啟動類在已部署
WebLogic Server
實例的系統
classpath
中可用。
·??
域中的管理服務器到托管服務器都不能自動部署出現在系統
classpath
中的類;應用程序級別的類可以分布在域中的管理服務器到目標服務器上。
·??
重新部署應用程序時,就會重新加載應用程序級別的啟動類。
·??
不能動態地重新加載服務器級別的啟動類;只能在它們各自的
WebLogic Server
重新啟動時重新加載它們。
·??
使用應用程序級別的啟動類,而不要定義服務器級別的啟動類。
節點管理器
使用
WebLogic Server
提供的節點管理器功能自動啟動托管服務器,或者重新啟動出現故障的托管服務器。節點管理器使管理員可以從管理服務器或命令行
(weblogic.Admin START…)
遠程啟動托管服務器。這可以通過與管理服務器通信來實現,而不用依賴
OS
特定的遠程登錄功能。
?
此外,除了啟動和關閉托管服務器之外,節點管理器還能夠監控它所啟動的服務器的健康狀況。如果進行恰當的配置,在出現故障時,節點管理器能夠自動重新啟動托管服務器。
技巧
·??
使用節點管理器時,顯式地配置所托管服務器的有遠程啟動屬性,而不要依靠節點管理器為托管服務器的配置提供的環境。
·??
節點管理器只接收來自管理服務器的請求。管理服務器不可用時,想要通過節點管理器遠程地重新啟動托管服務器是不可能的。
·??
把節點管理器配置為一個服務
/ daemon
。
·??
啟用托管服務器的自動重啟。
·??
配置機器在出現故障時自動關閉,以便在節點管理器嘗試重新啟動一個出現故障的實例之前關閉它。
·??
運行在一臺機器上的節點管理器可以被運行在該機器上的多臺托管服務器所共享。
·??
節點管理器還可以被運行在同一臺機器上的多個域中的托管服務器所共享。
WebLogic Server
關閉過程
異常的
JVM
終止可以導致套接字或程序段這樣的資源被鎖定。在操作系統中關閉或終止
WebLogic Server
進程被認為是異常終止。
可以通過以下方式正常關閉
WebLogic Server
:
·??
使用管理控制臺
'Graceful Shutdown"
超鏈接。
·??
使用
weblogic.Admin SHUTDOWN…
命令。
·??
使用
JMX
,具體是調用
ServerMBean
類的
stop
方法。
技巧
·??
為了正常關閉生產服務器,需要使用
WebLogic
管理控制臺或者
weblogic.Admin
實用程序。
·??
正常關機不會異常終止用戶會話;它等待
HTTP
會話完成或超時。
·??
也可以把
WebLogic Server
配置為不等待(忽略
Session During Shutdown
選項)。
·??
正常關機超時是可配置的;默認情況下,服務器將會無限期地等待關機過程完成。
·??
如果服務器沒有響應正常關機請求,或者當服務器等待正在進行的會話時(處于待機狀態)關閉服務器,使用
'Force Shutdown'
選項。
·??
如果被配置為
daemon
,確保將
rc
腳本中的
stop
方法配置為在機器重啟和停止時正常關閉服務器。
·??
如果對節點管理器進行配置,終止節點管理器將不會停止由它們啟動的相應服務器。必須單獨地停止各臺托管服務器。
備份和恢復
為了在出現故障時遷移或恢復
WebLogic
域,定期備份管理服務器機器上的整個域目錄樹。這樣,您就可以從硬件或系統故障中恢復,而要做的不過是還原域目錄并重新啟動管理服務器。
?
如果管理服務器崩潰,管理服務器將會把所有正在運行的托管服務器的相關信息保留在running-managed-servers.xml文件中。重新啟動時,管理服務器將會讀取這個文件,并嘗試聯系所有以前運行的托管服務器。如果沒有托管服務器正在運行的話,discovery模式可能會增加管理服務器的啟動時間,但是始終要使用discovery模式(默認情況下它是打開的),這樣才能保證有托管服務器已經運行的情況下,管理服務器重新與所有托管服務器連接。
一些需要引起注意/定期從管理服務器機器上進行備份的重要文件有:
·??
config.xml
域配置庫。
·??
config.xml.booted
成功啟動時對域配置庫的良好備份。
·??
boot.properties
啟動管理服務器時需要的加密后的用戶名和密碼。
·??
running-managed-servers.xml
這是當前正在運行的相關托管服務器的一個列表。這個文件用于當管理服務器重新啟動后,而且有托管服務器正在運行時,發現托管服務器。
·??
domain/configArchive/
包含域配置庫文件的拷貝。使用管理工具進行更新時,管理服務器把舊的
config.xml
文件復制到這個目錄。
·??
domaindminserverdapdapfiles
當前被域的管理服務器使用的內嵌
LDAP
數據文件。
·??
*.ldift
文件
這些文件可以用于把
WebLogic Domain Embedded LDAP
服務器初始化為剛剛創建域時的樣子。
·??
domain/adminserver/ldap/backup/EmbeddedLDAPBackup.zip
WebLogic Domain Embedded LDAP
服務器的備份。內嵌的
LDAP
被用于存儲用戶、組、角色、默認的安全領域使用的策略、
myrealm
的安全提供程序。
·??
Batch/Shell
腳本
setEnv.cmd/sh, startWebLogic.cmd/sh, startManagedWebLogic.cmd/sh
。
?
為管理任務編寫腳本
為了創建用于管理域配置的腳本:
·??
使用
weblogic.Admin
實用程序命令
BATCHUPDATE
,它運行一個批處理文件中指定的一系列命令。這個命令使用一個
JVM
運行所有列出的命令。
·??
-Dweblogic.system.BootIdentityFile
選項讓您可以避免把用戶名和密碼硬編碼在您的文本腳本中。
·??
為了在操作系統腳本中構建邏輯分支,使用下面的命令求出
weblogic.Admin
命令的返回代碼:
o??????????????
%ERRORLEVEL% (Windows)
o??????????????
0 (bash shell)
·??
?weblogic.Admin 的-adminurl 選項從管理服務器檢索托管服務器的配置Mbean和運行時Mbean。
·??
不推薦直接修改
config.xml
文件。
·??
如果您必須修改
config.xml
文件:
o??????????????
首先,在編輯之前備份原始文件。
o??????????????
使用
XML
編輯器,以避免錄入錯誤。
o??????????????
當管理服務器正在運行時,要避免編輯該文件。
·??
使用
wlconfig Ant
任務來為配置信息編寫腳本,并把它集成到整個構建過程中。
·??
當管理服務器正在運行并且處于離線狀態時,使用
WebLogic Scripting Tool (WLST)
來修改域配置。
(dev2dev.bea.com)
·??
WLST
提供一個功能強大的到
WebLogic Server
的
shell
接口,而且它使用
Jython
作為腳本語言。
·??
您還可以使用第三方的解決方案來管理配置,比如
WLShell
使用程序。
(www.wlshell.com)
·??
WLShell
提供一個功能強大的、
Unix
風格的到
WebLogic Server
的
shell
接口;它針對
WebLogic Server MBean
使用文件系統模擬
。
日志記錄
日志記錄了和事件(比如服務器的啟動和關閉)、新應用程序的部署或者一個或多個子系統故障有關的信息。日志消息包括和事件的時間與日期,以及啟動事件用戶的
ID
有關的信息。每個
WebLogic Server
實例都可以維護一份服務器日志、一份
HTTP
訪問日志、一份
JDBC
日志和一份
JTA
事務日志。
技巧
·??
為了防止當日志文件所占空間過大時,出現相應的服務器重啟的情況,需要啟用日志旋轉(
log rotation
)。
·??
考慮按照大小旋轉日志,而不是按照生成的時間旋轉,因為使用生成時間這個選項會使文件增長非常迅速。
·??
如果您沒有進行交互式調試,而且
WebLogic Server
是在后臺(
Windows
或
Unix
)啟動的,使用以下命令把
stdout
和
stderr
重定向到一個文件:
o??????????????
-Dweblogic.Stdout="stdout-filename"
o??????????????
-Dweblogic.Stderr="stderr-filename"
·??
在生產中,如果您不啟用
WebLogic Server
創建
JDBC
日志,您就可以避免服務器上的額外文件
I/O
。
·??
使用節點管理器啟動托管服務器時,節點管理器捕捉服務器的
stdout
并把它存儲到一個文件中。可以使用管理控制臺來查看該文件的內容。
·??
經常檢查
WebLogic Server
的日志文件,以熟悉常規操作,這樣您就能夠很容易地辨認出異常的日志項。
JDBC
在
WebLogic Server
中,使用池緩沖到數據庫的
JDBC
連接可以提高應用程序的性能。連接池根除了為每個應用程序創建新的數據庫連接的需要。
JDBC
連接池提供到您數據庫的現成連接。
?
使用連接池時,到數據庫的連接的數目可以動態改變。但是,在負載高峰時期試圖增加JDBC連接的數目將會使情況惡化,因為創建數據庫連接是一項開銷昂貴的操作。
?
連接池還可以通過緩存用于重用的prepared statement和callable statement來提高性能。重用prepared statement和callable statement可以降低數據庫服務器上的CPU利用率。
?
通過把其他應用程序分離到單獨的機器或硬件上,可以避免耗盡WebLogic Server機器上的處理能力;為數據庫指派一臺專用的機器。
技巧
·??
如果有可能,按大小排列數據庫連接池,這樣它們就永遠不會增加連接的數目;設置初始容量為最大容量。
·??
設置連接池的最大容量至少等于執行線程的數量。
·??
配置
Inactive Connection Timeout
,以指定一個連接在被回收到池中之前,保持非活動狀態的時間長短。
·??
Connection
Leak
Profiling
選項顯示了連接池中泄漏的連接。
BEA
建議您不要在生產中使用這個選項;它要使用額外的資源,并且通常會降低連接池操作的速度。
·??
如果您能夠負擔把測試連接作為常規請求處理一部分所帶來的開銷,您可以只使用
Test Reserved Connections
選項。
·??
避免對“
Test Table Name
”使用生產表,而要使用啞表
(
例如
Dual)
。
·??
使用語句緩存提高
prepared
和
callable statement
的性能。
·??
為緩存選擇
least-recently-used (LRU)
算法;這將從緩存中刪除很少使用的語句。
·??
當創建連接池或者啟動
WebLogic Server
時,如果數據庫不可訪問,可以使用
Connection Creation Retry Frequency
重新嘗試建立到數據庫的連接。
·??
當
WebLogic Server
正在運行時,如果重新啟動數據庫,
Test Frequency
可以從
0
開始增加,這樣所有連接都會被關閉,然后被重新打開,以重新建立有效的物理連接。在重新創建所有連接之后,將它改回
0
將禁止測試。
·??
當為連接池使用
DataSource
對象時,使用
Honors Global Transaction
選項來創建
TxDataSource
。
·??
您應該使用
non-Tx DataSource
的惟一場合就是當您想在數據庫上完成一些工作,而又不想把該數據庫包括到當前事務中時。
·??
當配置一個連接池,以便與
WebLogic JMS JDBC Store
一起使用時,使用
non-XA
數據庫驅動程序。
JMS
WebLogic Server JMS
體系結構允許在一個
WebLogic
域中創建多臺
JMS
服務器。但是每臺
JMS
服務器只能在一臺
WebLogic Server
上被實例化(目標化),因為它是一項“僅一次”的服務。一臺
JMS
服務器可以作為多個目的地的宿主。永久性存儲(基于磁盤的文件或可通過
JDBC
訪問的數據庫)可以被配置用于存儲永久性的消息數據。
?
如果必須跨多個目的地共享一個JMS存儲器,將多個目的地配置為駐留在一臺JMS服務器上。但是,為了使用對每個目的地使用單獨的永久性存儲器,在多臺JMS服務器下創建它們。
技巧
·??
針對
JMS
文件存儲啟用直接寫入同步寫入策略,這可以釋放虛擬內存(
VM
)堆,但是只有當存在一些并發的活動
JMS
客戶端時,直接寫入可以顯著地提高性能。
·??
在單獨的磁盤上,或者甚至是在單獨的磁盤控制器上分離文件存儲。
·??
為了使文件存儲高度可用,您可以使用
Storage Area Network (SAN)
,一種多端口的磁盤或者磁盤鏡像技術。
·??
不要把使用
XA JDBC
驅動程序的連接池與
JMS JDBC
存儲器關聯起來,因為
JMS JDBC
存儲器不支持
XA
資源驅動程序
(WebLogic JMS
實現了它自己的
XA
資源
)
。
·??
使用
Using Expiration Scan Interval
掃描目的地的到期消息可以釋放
VM
,但是太頻繁的掃描會增加掃描開銷;確保您對此做最優調整。
·??
在連接工廠上設置
MessagesMaximum
,以便調整異步消息管道的大小。
·??
為了避免消息增長,在連接工廠級別上設置
Time To Live
屬性。
·??
禁用默認的
JMS
連接工廠;針對生產配置特定于應用程序的
JMS
連接工廠。
·??
為跨物理目的地(在不同的
JMS
服務器中進行配置)的負載平衡
JMS
消息配置一個分布式的目的地。
·??
當部署分布式目的地時,針對群集中的每臺
JMS
服務器和成員目的地使用類似的設置。
消息分頁
永久性和非永久性消息消耗服務器內存,除非啟用分頁。消息分頁是釋放永久性和非永久性消息所占用的服務器內存的過程,因為永久性消息也會把它們的數據緩存在內存中。一條被換出頁面的消息不會釋放它使用的所有內存。消息頭和消息屬性仍然留在內存中,以供查找、排序和過濾之用。在事務性會話中發送的消息只有在會話被提交后才適合于分頁。在這之前,消息被保存在內存中。
技巧
·??
如果啟用
JMS
分頁,而且沒有配置分頁存儲器,
WLS 8.1
會自動創建一個分頁存儲器,但是推薦顯式地配置頁面存儲器(您可以指定存儲器的位置)。
·??
JMS
分頁增加了一個
WebLogic Server
實例能夠包含的消息數據的數量,而不要求增加
JVM
堆大小。
·??
分頁的確會降低性能,但是對非永久性消息進行分頁時,其效果比對永久性消息分頁時要小。
·??
始終為
WebLogic JMS Server
配置限額;限額可以防止消息溢出服務器內存。
流控制
定義
JMS
服務器之后,您可以配置一個或多個連接工廠,以使用預定義的屬性創建連接。借助流控制功能,您可以在消息生產程序確定自己將會變得過載時,引導
JMS
服務器或目的地降低它的速度。
技巧
·??
為了降低過于活躍的、從
WebLogic Server
進程之外淹沒目的地的生產程序的速度,需要配置流控制。
·??
在服務器內部使用流控制會導致服務器線程速度變慢;要小心使用。
部署
WebLogic Server
允許您把部署單元存儲為單個存檔文件,或者是一個包含與上述存檔文件相同內容的已展開目錄。存檔文件是包含一個所有應用程序或模塊的類、靜態文件、目錄和部署描述符文件的單個文件。
?
在托管服務器實例上部署用戶應用程序。這將管理應用程序(控制臺)和域配置從用戶應用程序分離出來。在生產環境和多服務器環境中,避免使用應用程序的自動部署。以“生產模式”運行WebLogic域將禁止在生產中進行自動部署。如果您創建腳本來把應用程序部署為整個結構的一部分,考慮使用wldeploy Ant任務。
如果您在部署應用程序(或模塊)時,在把On Future Redeploys選項設置為Initialize Roles and Policies From DD 之前,一次或多次將其設置為Ignore Roles and Policies From DD,您就可以使用管理控制臺設置安全策略和安全角色。但是,使用管理控制臺進行的這些修改將覆蓋部署描述符中指定的安全性。
技巧
·??
使用生產模式運行生產應用程序。
·??
避免在管理服務器實例上部署用戶應用程序。
·??
為了指定服務器的默認
Web
應用程序,在
weblogic.xml
或
application.xml
文件中使用一個空的
context-root
元素或者一個值為
"/"
的元素。
·??
在管理控制臺中部署應用程序之后,對該應用程序的安全策略的修改將會覆蓋部署描述符中的策略。
重新部署
部署一個應用程序之后,您可以重新部署該應用程序本身或者它的一部分。重新部署一個完整的應用程序包括卸載它所有的類,然后使用修改后的文件再次部署該應用程序。在生產中重新部署應用程序是一個很嚴肅的任務,它可能影響到性能,所以要仔細規劃應用程序的更新。
?
如果生產中有一個Web應用程序正在使用中,重新部署將導致WebLogic Server丟失所有活動的HTTP會話。通過在WebLoigc特定的部署描述符文件(weblogic.xml)中打開一個特殊的屬性,可以還原HTTP會話。
技巧
·??
如果您只修改了靜態文件,那么在不用重新部署整個應用程序的情況下刷新它們是可能的。
·??
使用命令行選項部分地重新部署已擴展的應用程序
(weblogic.Deployer … -redeploy <files>…)
。
·??
想要在不改變應用程序的情況下修改部署參數,需要使用備用的部署描述符。
·??
為了簡化在重新部署期間,把應用程序存檔文件重新分布到多個
WebLogic Server
實例上的過程,需要使用分段模式部署。
·??
如果管理服務器不可用,可以以獨立模式啟動具有全部分段應用程序的托管服務器,并使它的功能完全。
企業應用程序
如果客戶端位于相同的企業級應用程序類中,而且可以在企業應用程序中跨所有存檔應用程序共享庫,
WebLogic
優化了對
EJB
的訪問。所以,考慮創建企業存檔文件,而不是獨立部署相關的應用程序。此外還可以使用企業范圍內的設置,而不要使用部署描述符中的多項本地設置。使用
WebLogic
控制臺在
WebLogic Server
域中創建
JDBC
資源,而不要采用
weblogic-application.xml
技術。
技巧
·??
在
WebLogic Server
中,避免把
EJB
存檔文件和相關
Web
應用程序部署為單獨的獨立應用程序。
·??
當
Web
組件訪問同一個企業應用程序中的
EJB
組件時,可以提高運行時性能。
·??
可以把企業部署為一個部署單元。
·??
不要把特定于應用程序的類或
JAR
文件放入系統
classpath (
避免為了重新加載它們而不得不重新啟動服務器
)
。
·??
使用
WebLogic Server 8.1
時,請使用企業應用程序目錄結構中新的
APP-INF/lib
和
APP-INF/classes
目錄,這是為了簡化實用程序類和實用程序存檔文件的打包工作。
預編譯
生產和測試部署應該包括經過預編譯的
JSP
頁面和
EJB
(使用
weblogic.appc
,如果是早期的
weblogic
版本則使用
weblogic.jspc /weblogic.ejbc
)。在您部署應用程序之前的很長一段時間內,它們可以捕捉該應用程序的錯誤。此外,離線編譯可以驗證部署描述符與當前規范的兼容性。部署已編譯的應用程序可以縮減部署時間和接下來的服務器重啟時間。用在開發人員的工作站上的開發部署可以使用動態編譯。
技巧
·??
為了在應用程序部署期間或服務器啟動期間預先編譯
JSP
文件,在
weblogic.jar
中啟用預編譯參數。
·??
在生產環境中,要禁止運行時的頁面檢查和重新編譯,需要把
pageCheckSeconds
設定為
-1
。
·??
您可以使用
weblogic.appc
或
weblogic.ejbc (
不再使用
)
在服務器
VM
之外編譯
EJB
。這可以減少隨后服務器的重啟時間。
·??
在腳本中使用
weblogic.Deployer
實用程序,或者它相關的
Ant
任務
wldeploy
,以便在生產環境中使部署自動化。
部署描述符編輯
只有當重新部署應用程序時,修改
J2EE
應用程序的部署描述符才會生效。
WebLogic
管理控制臺提供一種方法來修改某些部署描述符屬性,而不用重新部署應用程序。當域以開發模式運行時,為了利用這項功能,您必須在已展開的目錄結構中部署應用程序(非存檔格式)。
?
為了在部署之后修改應用程序的描述符值(以展開的格式),執行以下操作:Web Application Module > Your Application > Configuration 選項卡 > Descriptor選項卡。
技巧
·??
使用
WebLogic Server
提供的工具生成和編輯
XML
部署描述符。
·??
WebLogic Builder
生成描述符;它包括一個用于編輯描述符的接口。
·??
DDInit
是一個命令行實用工具,用于為
WebLogic Server
應用程序生成部署描述符。
·??
ddcreate
是一個
Ant
任務,可以用于為企業應用程序創建部署描述符。
EJB
無狀態會話
EJB
自由池可以提高性能和吞吐量,因為
bean
是在服務器啟動期間或部署期間被創建的。
WebLogic Server
使用
bean
實例的緩存來提高有狀態會話
EJB
的性能。該緩存在內存中存儲活動的
EJB
實例,這樣它們馬上就可以為客戶端請求所用。
?
使用應用程序級/聯合緩存將導致碎片減少,而且內存和堆空間的利用率更高。但是應用程序級/聯合緩存的使用僅限于企業應用程序中的實體EJB。對于要求高吞吐量的應用程序來說,要使用bean級別的緩存。bean級緩存是高效的,因為任務們不用競爭對聯合緩存中一個控制線程的控制權。
為了在應用程序中使用WebLogic為EJB組件提供的調用優化,把<enable-call-by-reference>設置為true。
?
在同一個企業應用程序中為要訪問的EJB編寫本地接口,也可以達到相同的目的。
?
實體EJB的并發策略包括:
數據庫:
遵從數據庫可以提高吞吐量(對于
EJB1.1
和
2.0
來說,這是默認的也是建議使用的機制)。
互斥的:
避免死鎖;只有當在非群集的服務器上要求高度一致性時才使用它。
樂觀的:
在事務期間,
EJB
容器或數據庫中不會保持鎖定。但是
EJB
容器確保事務正在更新的數據沒有被修改。
只讀的:
事務結束時,容器不會試著保存
bean
的狀態;對不會對永久性數據做任何修改的
EJB
使用這一點。借助只讀策略,使用
<read-time-out-seconds>
使容器中緩存的
bean
數據變得無效;當出現超時時,這會更新永久性存儲器中數據。
技巧
·??
考慮執行線程的數目,以便配置自由池中
bean
的最大數目。
·??
要限制有狀態會話
EJB
使用的內存,需要設置能夠駐留在緩存中的
bean
的最大數目
(max-beans-in-cache)
。
·??
緩存過小會導致頻繁的激活和鈍化。
·??
緩存過大會導致內存浪費。
·??
當達到理想的超時時間長短之后,
LRU
算法會讓
bean
保持在鈍化狀態。
·??
為了避免鈍化有狀態會話
EJB
所帶來的相關開銷,使用
Not Recently Used (NRU)
算法。
·??
EJB
的本地接口提供對服務器端
EJB
客戶端的最優訪問。
·??
聯合緩存使管理員能夠在
weblogic-application.xml
中只調整一塊緩存,而不是多塊緩存。
·??
使用容器托管事務的消息驅動
bean
必須使用
XA
連接工廠。
安全性
永遠不要對生產服務器使用開發模式;開發模式會放寬域中所有服務器的安全限制。使用兼容性安全性時,禁用生產中的客人登錄,這樣就可以使用客人登錄來訪問
WebLogic Server
中的
WebLogic
資源。
?
創建安全策略時,如果通過繼承得到的策略語句出現在Policy Editor頁面的Inherited Policy Statement框中,新的策略會覆蓋它們。想要修改在J2EE部署描述符中定義的安全策略,需要進行重新部署;在管理控制臺中修改內嵌的LDAP策略是動態的。把另外的管理用戶配置為諸如admin、deployer、 monitor 或 operator這樣的角色。
?
SerializedSystemIni.dat包含對域中密碼進行處理以后得到的雜亂信息;確保您在安全的地方存儲了這個文件的拷貝。只能授予WebLogic系統管理員帳號對SerializedSystemIni.dat的讀權限。如果您丟失了管理密碼,而且沒有以boot.properties文件的形式保存啟動身份,那么您不能重新啟動服務器。
技巧
·??
在
boot.properties
文件中保存對有權啟動
WebLogic Server
的用戶進行加密后的啟動身份。
·??
BEA
建議使用安全角色(而不是用戶或組)來保護
WebLogic
資源;首先把用戶指派給組,然后創建角色語句。
·??
不要以
root
權限安裝或運行
WebLogic Server
。如果您必須綁定到一個要求授權的端口,請在
WebLogic
機器配置中使用
post-bind UID
或
post-bind GID
。
·??
設置
WebLogic
安裝和應用程序目錄的所有權,只允許運行服務器的用戶帳戶訪問它們。
恢復管理員密碼
使用默認的身份認證程序時,如果您尚未修改全局的管理角色(默認情況下被授給管理員組),您可以恢復
WebLogic
域中的管理員密碼。
<span style="FONT-SIZE: 9pt; COLOR: black; F