創建 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進程分配一個UIDGID,以便在計算機執行所有優先的啟動操作之后,以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 statementcallable statement來提高性能。重用prepared statementcallable 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級緩存是高效的,因為任務們不用競爭對聯合緩存中一個控制線程的控制權。

為了在應用程序中使用WebLogicEJB組件提供的調用優化,把<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策略是動態的。把另外的管理用戶配置為諸如admindeployer 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