文章工具![]() ![]() |
作者:sdj21
瀏覽次數: 5741
本文關鍵字:監控, 調優, 集群, 安全, 應用管理, 日常管理, LDAP

1.1WebLogic Platform 8.1 永不過期的開發版license
1.10WebLogic的Startup Class應該放在那個目錄里
2.1JNDI里面加和不加java:comp/env/前綴有什么區別?
3.1.3Sun Hotspot 1.4.1 JVM堆大小的調整
3.2WebLogic Server Hang產生的一般原因
日常管理 WebLogic Platform 8.1 永不過期的開發版license
下載地址為:
http://dev2dev.bea.com.cn/bbs/servlet/D2DServlet/download/81-8992-44196-240/license.bea
使用方式:
替換c:\bea目錄下的這個文件,這樣就可以使WebLogic Platform用不過期
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=8992&tstart=0&quint=true
如何遠程啟動WebLogic服務?用telnet遠程控制服務器,遠程啟動WEBLOGIC服務,啟動后關閉telnet,WebLogic服務也跟著停止,這是因為使用telnet啟動的進程會隨著telnet進程的關閉而關閉。所以我們可以使用一些UNIX下的命令來做到不關閉。
使用如下命令:
nohup startWeblogic.sh&
如果想要監控標準輸出可以使用:
tail -f nohup.out
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=7709&tstart=0&quint=true
控制臺左邊的樹結構看不見?
這是因為瀏覽器沒有安裝合適版本的JRE插件來支持Applet。
可以到http://java.sun.com/products/plugin/ 下載相應瀏覽器的插件來解決這個問題。
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=5233&tstart=0&quint=true
WebLogic 配置出來的各種域有什么區別?請看這個鏈接中的Table 16-1 Configuration Template Summary ,說的很明白
http://e-docs.bea.com/platform/docs81/confgwiz/tempref.html
Table 16-1 Configuration Template Summary
Creates the Avitek Medical Records domain outside the installed kit. This domain is a WebLogic Server sample application suite that concisely demonstrates all aspects of the J2EE platform. | |||
Creates a domain that supports the development of WebLogic Integration solutions. Note: To create a domain that supports the development of WebLogic Server Process Edition solutions, use the Basic WebLogic Integration Domain template. If you have an existing WebLogic Server-based domain, you can extend it to include the resources required for WebLogic Server Process Edition by using the WebLogic Integration Extension Template. | |||
Creates a domain that supports the development of applications using all WebLogic Platform components. | |||
Creates a domain that supports the development of WebLogic Portal solutions. | |||
Creates a simple WebLogic Server domain without any sample applications. | |||
Creates a domain that supports the development of WebLogic Workshop solutions. | |||
Creates the WebLogic Server Examples domain outside the installed kit. This domain contains a collection of examples that illustrate best practices for coding individual J2EE APIs. |
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=9188&tstart=0&quint=true
Too many open files錯誤的處理
在有些Linux下由于操作系統的限制,單一進程可以打開的文件數有限制,引起WebLogic報告錯誤,解決這問題需要編譯內核并且調節一些限制參數。
在Linux內核2.4.x中需要修改源代碼,然后重新編譯內核才生效。編輯Linux內核源代碼中的 include/linux/fs.h文件,將 NR_FILE 由8192改為65536,將NR_RESERVED_FILES 由10 改為 128。編輯fs/inode.c 文件將MAX_INODE 由16384改為262144。一般情況下,系統最大打開文件數比較合理的設置為每4M物理內存256,比如256M內存可以設為16384,而最大的使用的i節點的數目應該是最大打開文件數目的3倍到4倍。另外,對每個進程的設置:
ulimit -n 4096 將每個進程可以打開的文件數目加大到4096,缺省為1024
ulimit -m 4096 限制每個進程使用的內存數。
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=2461&tstart=0&quint=true
Apache2和weblogic7實現虛擬主機
選擇apache2,是因為目前wls7只支持apache2的結合.
1.首先,正確安裝apache2,這里我們假設安裝在C:\apache group,安裝完畢,需要測試apache2是否支持動態加載模塊功能,這樣測試,到命令
提示符下運行:
c:\>apache group\apache2\bin\apache -l
如果列出:
mod_so.c
則表示支持,然后將本篇文章附件中的mod_wl_20.so拷貝到apache group\apache2\modules下面,運行:
c:\>apache group\apache2\bin\apache -t
如果輸出:
Syntax Ok
表示WebLogic Server plug-in安裝成功。
2.正確安裝weblogic7.0。這里我們假設wls7的安裝路徑是:c:\bea。然后用域配置向導配置一個域,我們假設域
的名稱為amjn,路徑是c:\bea\user_projects\amjn,然后在amjn下面分別建立兩個站點web1,web2,修改
c:\bea\user_projects\amjn\config.xml文件,在
<Application Deployed="true" Name="DefaultWebApp"
Path=".\applications" StagedTargets="" TwoPhase="false">
<WebAppComponent Name="DefaultWebApp" Targets="myserver" URI="DefaultWebApp"/>
</Application>
下面添加:
<Application Deployed="true" Name="web1" Path=".\applications\web1"
StagedTargets="" TwoPhase="false">
<WebAppComponent Name="web1" URI="web1" VirtualHosts="web1_vh"/>
</Application>
<Application Deployed="true" Name="web2" Path=".\applications\web2"
StagedTargets="" TwoPhase="false">
<WebAppComponent Name="web2" Targets="myserver" URI="web2" VirtualHosts="web2_vh"/>
</Application>
在文件最下面的
</Domain>
的上面添加
<VirtualHost DefaultWebApp="web1" Name="web1_vh" Targets="myserver" VirtualHostNames="www.web1.com"/>
<VirtualHost DefaultWebApp="web2" Name="web2_vh" Targets="myserver" VirtualHostNames="www.web2.com"/>
,然后重新啟動運行\amjn\startWebLogic.cmd,一定要運行正常。到這里,weblogic算是配置完成了。
3.現在開始配置apache多個虛擬主機,首先我們先打開c:\winnt\system32\drivers\etc\hosts文件,在其中添加:
10.1.3.30 www.web1.com
10.1.3.30 www.web2.com
這里面的10.1.3.30是你的weblogic服務器綁定的ip,然后打開apache2\conf\httpd.conf文件,在174行,注意是174行加入如下語句:
#WebLogic Server Proxy Settings-------該行是174行
LoadModule weblogic_module modules/mod_wl_20.so
<IfModule mod_weblogic.c>
WebLogicHost www.synnex-china.com
WebLogicPort 7001
MatchExpression *.jsp
MatchExpression *.do
</IfModule>
然后修改httpd.conf文件中的Listen:80為Listen:10.1.3.30:80,在文件section 3部分添加:
NameVirtualHost 10.1.3.30
<VirtualHost 10.1.3.30>
ServerName www.web1.com
DocumentRoot "c:/bea/user_projects/amjn/applications/web1"
ErrorLog logs/web1.com.log
</VirtualHost>
<VirtualHost 10.1.3.30>
ServerName www.web2.com
DocumentRoot "c:/bea/user_projects/amjn/applications/web2"
ErrorLog logs/web2.com.log
</VirtualHost>
啟動apache,如果沒有問題(可以通過logs/error.log查看),那就一切ok了
4.現在你可以分別敲入www.web1.com/index.jsp,訪問的將是web1/index.jsp,敲入www.web2.com/index.jsp訪問的將是web2/index.jsp
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=6326&tstart=0&quint=true
如何限制公網用戶訪問WebLogic的控制臺呢?我們的weblogic(版本6.1)應用部署在內部網上,通過防火墻映射到公網上,但公網用戶通過鍵入域名:www.xxx.com/console,就可進入weblogic的登陸頁面,用戶可猜測管理員的密碼,如何屏蔽公網用戶對weblogic控制臺的訪問呢?
方法1:
在控制臺上點擊左邊的你那個domain,將Console Enabled這個選項去掉,這樣就完全不能使用console了
方法2:
將“console”改名,改“Console Context Path”的“console”為一個希奇古怪的名字就可以了
方法3:
不要給WebLogic公網ip,通過一個有公網ip的apache等proxy來訪問WebLogic
方法4:
啟動Administration Port
方法5:
應用不發布在Admin Server上,Admin Serve在外網不可見
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=2230
開機自動啟動oracle和weblogic
我的機器是5L,oracle9i,weblogic6.1,HTTPServer
由于給別人裝的機器,對方水平有限,為了省心,還是讓系統起來自動運行各項應用比較好:)
首先自動啟動oracle9i,9i裝在oracle文件系統下,在/oracle下建立文件startdb,
文件內容
echo "begin to start oracle"
lsnrctl start
sqlplus /nolog <<EOF
connect /as sysdba
startup
exit
exit
echo "oracle have started"
給startdb執行權限
自動關閉oracle9i,在/oracle下建立文件stopdb
sqlplus /nolog <<EOF
connect /as sysdba
shutdown immediate
好了啟動和關閉oracle腳本完成還要加到系統的啟動和關閉文件里,另外還要在啟動oracle后啟動weblogic
在/etc下建立文件rc.startdb,腳本如下
su - oracle "-c /oracle/startdb" #啟動oracle
cd /weblogic/wlserver6.1/config/mydomain #轉到weblogic啟動目錄,必須
./startWebLogic.sh #啟動weblogic
給文件執行權限
注意由于weblogic在啟動后如果用戶退出telnet 就自動關閉,所以要把weblogic放在后臺執行,所以在startWebLogic.sh文件中啟動weblogic的命令行改為可以在后臺運行,用 nohup (啟動命令行) >/home/weblogic.log &
把weblogic的運行信息存到/home/weblogic.log文件中
下面要把啟動信息放到inittab中,加入一行
startdb:2345678:wait:/etc/rc.startdb
這樣系統啟動后會自動啟動oracle9i
系統關機自動關閉oracle9i
在/etc下建立腳本文件rc.stopdb
su - oracle "-c /oracle/stopdb"
給執行權限
由于5L中安裝完成后沒有/etc/rc.shutdown文件,需要手工創建一個
內容如下
#!/bin/ksh
rc.stopdb
給執行權限
這樣當系統關機時會自動尋找rc.shutdown并執行,系統可以自動關閉oracle9i
當然可以把一些命令行直接寫入inittab或rc.shutdown中,看自己的喜好了:)
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=8415&tstart=25&quint=true
如何測試虛擬主機
在本機配置了虛擬主機,沒有DNS Server,如何進行測試呢?
C:\WINNT\system32\drivers\etc\hosts加入一行:127.0.0.1 test.project.com.cn
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=9776&tstart=25&quint=true
WebLogic的Startup Class應該放在那個目錄里
WebLogic在啟動的時候可以指定Startup Class,它在任何一個應用的類被加載之前調用,所以應該加到啟動時的系統類路徑下,可以修改startWebLogic.cmd或commEnv.cmd文件相應的CLASSPATH部分,加入Startup Class的類路徑。
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=9119&tstart=25&quint=true
如何停止WebLogic服務?
直接殺死進程不是標準的做法,應該使用如下Java命令:
java -classpath weblogic.jar;%CLASSPATH% weblogic.Admin -url <host_name>:<port_number> SHUTDOWN -username <system_user_name> -password <system_user_password>
例如:
java -classpath weblogic.jar;%CLASSPATH% weblogic.Admin -url 192.168.0.1:7001
SHUTDOWN -username system -password password
其中如果SHUTDOWN管不掉,可以使用FORCESHUTDOWN代替SHUTDOWN來強制關掉服務器。
另外也可以直接使用stopWebLogic.cmd。
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=5519&tstart=25&quint=true
應用管理 JNDI里面加和不加java:comp/env/前綴有什么區別?
java:comp/env是標準的J2EE環境查找規則,使用這種方式必須做一次環境名到JNDI名的映射,這種隔離使得在寫程序時不必關注真正的JNDI名字,其實說白了跟把JNDI名放到配置文件里是一樣的,用法如下:
如把java:comp/env/my/datasource映射到my.ora.dataource
web.xml
<resource-ref>
<res-ref-name>my/datasource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>CONTAINER<res-auth>
</resource-ref>
weblogic.xml
<reference-descriptor>
<resource-description>
<res-ref-name>my/datasource</res-ref-name>
<jndi-name>my.ora.dataource</jndi-name>
………………….
而不使用這個前綴的,其實就是直接的JNDI名
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=17074&tstart=0&quint=true
如何更改默認打開主頁?如何設置虛擬目錄?
設置默認打開主頁:
web.xml增加
<welcome-file-list>
<welcome-file>yourfile</welcome-file>
</welcome-file-list>
虛擬目錄的配置方法:
在weblogic.xml中添加如下的類似配置
<virtual-directory-mapping>
<local-path>c:/usr/common_jsps.jar</local-path>
<url-pattern>*.jsp</url-pattern>
</virtual-directory-mapping>
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=16333&tstart=0&quint=true
WebLogic Builder使用簡介
在DEV2DEV論壇上有網友會問類似于這樣的問題“如何為EJB寫那些部署描述文件如ejb-jar.xml以及WebLogic-ejb- jar.xml呢?”,對初學EJB的朋友來說,是一個比較困難的問題,如果不想手寫的話,可以采用BEA提供的WebLogic Builder工具或是JBuilder等工具來自動生成。本文就WebLogic Builder的使用進行一個簡單的介紹,權且當一個入門的指引,同時歡迎各位朋友就你的經驗對這篇文章進行補充完善。使用步驟如下:
一、準備。
例子就用WebLogic安裝完后的example中statelessSession EJB的例子,給個路徑參考
C: \bea\weblogic700\samples\server\src\examples\ejb20\basic\statelessSession 將這個目錄下的.java文件全部拷貝出來放到一個臨時目錄中比如C:\temp\WebLogic_Builder_Test來做這個實驗,拷貝的文件有Client.java,Trader.java,TraderBean.java,TradeResult.java, TraderHome.java。
二、對java原文件進行編譯
命令行中進入C:\temp\WebLogic_Builder_Test,鍵入 javac -d . *.java,
三、打jar包
命令行中,C:\temp\WebLogic_Builder_Test目錄下,鍵入jar -cvf test.jar *.*,生成test.jar包。
四、打開WebLogic Builder工具,選擇并打開我們在步驟三中創建的test.jar包,這時WebLogic Builder給出一個提示“Unable to locate deployment descriptors. C:\temp\WebLogic_Builder_Test\test.jar. Would you like new descriptors created for you?”,這意思明白了吧,WebLogic Builder要為你創建基本的部署描述符文件了,當然點擊是咯,然后選擇保存,這樣你的C:\temp\WebLogic_Builder_Test目錄下的test.jar文件就有那兩個部署描述文件了,可以通過WebLogic Builder工具中的View-->XML Source進行查看。
恭喜你,對WebLogic Builder這個工具的使用入門了,至于該工具的其它的一些使用功能比如BEAN屬性配置、server部署什么的,就請大家自己研究吧!^Q^
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=2683
WebLogic部署應用的方式簡明列表
1、WebLogic中應用可分三種,分別對應不同的描述文件及擴展名或目錄結構:
(1)*.JAR: 是EJB的壓縮包(有3個描述文件ejb-jar.xml,WEBLOGIC*.0-ejb-jar.xml,WEBLOGIC*.0-cmp-rdbms-jar.xml)
(2)*.WAR: 是只包含JSP和SERVLET的WEB APPLICATION壓縮包(有2個描述文件web.xml,weblogic.xml)
(3)*.EAR: 是包含EJB和WEB APPLICATION 的J2EE Enterprise Application壓縮包(有1 個描述文件,application.xml)
注意:它們不能混用,如WEB APPLICATOIN不能打包成.EAR文件。
2、WebLogic的應用用兩種發布方式:
(1)以目錄形式存放在WEBLOGIC的APPLICATIONS目錄下,適用于開發階段
(2)以一個壓縮包形式存放在WEBLOGIC的APPLICATIONS目錄下,適用于運行階段,可用JAR 打包,如D:\test >jar cf testwar.war *
把TEST目錄下的所有文件打包成一個testwar.war文件。
3、WebLogic應用的布置方式有2種
(1)靜態布置:即把應用在CONFIG.XML中登記,可通過WEBLOGIC的控制臺進行添加,WEBLOGIC會自動把該應用對應的壓縮包拷到APPLICAITONS目錄下,如果對該應用修改,需要重新布置才行。
(2)動態布置:沒有在config.xml中登記,可直接把壓縮包或目錄拷到APPLICATIONS目錄下,WebLogic會自動檢測到. WebLogic每次啟動時會自動對APPLICATIONS目錄下沒有進行靜態布置的應用,進行動態布置。
4、一個例子:
如果一個應用中有EJB,JSP,SERVLET,其布置步驟如下:
(1)生成EJB的JAR文件,最好一個JAR文件對應一個EJB
(2)生成WEB APPLICATION的WAR文件,在web.xml,weblogic.xml中登記,配置SERVLET,JSP等。
(3)創建一個application.xml文件,設置該應用的屬性.把application.xml,*.JAR, *.WAR,打包成一個*.EAR
(4)WebLogic的控制臺中登記該應用或把該EAR文件拷到application目錄下。到此處就完成了部署。
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=8766&tstart=25&quint=true
WebLogic如何設置session超時時間
1 web.xml
設置WEB應用程序描述符web.xml里的<session-timeout>元素。這個值以分鐘為
單位,并覆蓋weblogic.xml中的TimeoutSecs屬性
<session-config>
<session-timeout>54</session-timeout>
</session-config>
此例表示Session將在54分鐘后過期
當<session-timeout>設置為-2,表示將使用在weblogic.xml中設置的
TimeoutSecs這個屬性值。
當<session-timeout>設置為-1,表示Session將永不過期,而忽略在
weblogic.xml中設置的TimeoutSecs屬性值。
該屬性值可以通過console控制臺來設置
2 weblogic.xml
設置WebLogic特有部署描述符weblogic.xml的<session-descriptor>元素的
TimeoutSecs屬性。這個值以秒為單位
<session-descriptor>
<session-param>
<param-name>TimeoutSecs</param-name>
<param-value>3600</param-value>
</session-param>
</session-descriptor>
默認值是3600秒
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=1972&tstart=25&quint=true
監控調優 理解JVM的垃圾收集機制
簡述
GC即垃圾收集機制是指JVM用于釋放那些不再使用的對象所占用的內存。java語言并不要求JVM有GC,也沒有規定GC如何工作。不過常用的JVM都有GC,而且大多數GC都使用類似的算法管理內存和執行收集操作。
在充分理解了垃圾收集算法和執行過程后,才能有效的優化它的性能。有些垃圾收集專用于特殊的應用程序。比如,實時應用程序主要是為了避免垃圾收集中斷,而大多數OLTP應用程序則注重整體效率。理解了應用程序的工作負荷和JVM支持的垃圾收集算法,便可以進行優化配置垃圾收集器。
垃圾收集的目的在于清除不再使用的對象。GC通過確定對象是否被活動對象引用來確定是否收集該對象。GC首先要判斷該對象時候可以收集。兩種常用的方法是引用計數和對象引用遍歷。引用計數存儲對特定對象的所有引用數,也就是說,當應用程序創建引用以及引用超出范圍時,JVM必須適當增減引用數。當某對象的引用數為0時,便可以進行垃圾收集。
早期的JVM使用引用計數,現在大多數JVM采用對象引用遍歷。對象引用遍歷從一組對象開始,沿著整個對象圖上的每條鏈接,遞歸確定可到達(reachable)的對象。如果某對象不能從這些根對象的一個(至少一個)到達,則將它作為垃圾收集。在對象遍歷階段,GC必須記住哪些對象可以到達,以便刪除不可到達的對象,這稱為標記(marking)對象。
下一步,GC要刪除不可到達的對象。刪除時,有些GC只是簡單的掃描堆棧,刪除未標記的對象,并釋放它們的內存以生成新的對象,這叫做清除(sweeping)。這種方法的問題在于內存會分成好多小段,而它們不足以用于新的對象,但是組合起來卻很大。因此,許多GC可以重新組織內存中的對象,并進行壓縮(compact),形成可利用的空間。
為此,GC需要停止其他的活動活動。這種方法意味著所有與應用程序相關的工作停止,只有GC運行。結果,在響應期間增減了許多混雜請求。另外,更復雜的GC不斷增加或同時運行以減少或者清除應用程序的中斷。有的GC使用單線程完成這項工作,有的則采用多線程以增加效率。
下面列舉一些JVM使用的GC
標記-清除收集器:這種收集器首先遍歷對象圖并標記可到達的對象,然后掃描堆棧以尋找未標記對象并釋放它們的內存。這種收集器一般使用單線程工作并停止其他操作。
標記-壓縮收集器:有時也叫標記-清除-壓縮收集器,與標記-清除收集器有相同的標記階段。在第二階段,則把標記對象復制到堆棧的新域中以便壓縮堆棧。這種收集器也停止其他操作。
復制收集器這種收集器將堆棧分為兩個域,常稱為半空間。每次僅使用一半的空間,JVM生成的新對象則放在另一半空間中。GC運行時,它把可到達對象復制到另一半空間,從而壓縮了堆棧。這種方法適用于短生存期的對象,持續復制長生存期的對象則導致效率降低。
增量收集器增量收集器把堆棧分為多個域,每次僅從一個域收集垃圾。這會造成較小的應用程序中斷。有多種方法可以定義實際的GC。
分代收集器 這種收集器把堆棧分為兩個或多個域,用以存放不同壽命的對象。JVM生成的新對象一般放在其中的某個域中。過一段時間,繼續存在的對象將獲得使用期并轉入更長壽命的域中。分代收集器對不同的域使用不同的算法以優化性能。
并發收集器 并發收集器與應用程序同時運行。這些收集器在某點上一般都不得不停止其他操作以完成特定的任務,但是因為其他應用程序可進行其他的后臺操作,所以中斷其他處理的實際時間大大降低。
并行收集器 并行收集器使用某種傳統的算法并使用多線程并行的執行它們的工作。在多cpu機器上使用多線程技術可以顯著的提高java應用程序的可擴展性。
Sun Hotspot 1.4.1 JVM堆大小的調整
Sun Hotspot 1.4.1使用分代收集器,它把堆分為三個主要的域:新域、舊域以及永久域。JVM生成的所有新對象放在新域中。一旦對象經歷了一定數量的垃圾收集循環后,便獲得使用期并進入舊域。在永久域中JVM則存儲class和method對象。就配置而言,永久域是一個獨立域并且不認為是堆的一部分。下面介紹如何控制這些域的大小。
可使用-Xms和-Xmx控制整個堆的原始大小或最大值。比如,下面的命令是把初始大小設置為128M:
java –Xms128m –Xmx256m
為控制新域的大小,可使用-XX:NewRatio設置新域在堆中所占的比例。比如下面的命令把整個堆設置成128m,新域比率設置成3,即新域與舊域比例為1:3,新域為堆的1/4或32M:
java –Xms128m –Xmx128m –XX:NewRatio =3
可使用-XX:NewSize和-XX:MaxNewsize設置新域的初始值和最大值。比如,下面的命令把新域的初始值和最大值設置成64m:
java –Xms256m –Xmx256m –Xmn64m
一般不把永久域當作堆的一部分。永久域默認大小為4m。運行程序時,JVM會調整永久域的大小以滿足需要。每次調整時,JVM會對堆進行一次完全的垃圾收集。使用-XX:MaxPerSize標志來增加永久域搭大小。在WebLogic Server應用程序加載較多類時,經常需要增加永久域的最大值。當JVM加載類時,永久域中的對象急劇增加,從而使JVM不斷調整永久域大小。為了避免調整,可使用-XX:PerSize標志設置初始值。比如,下面把永久域初始值設置成32m,最大值設置成64m。
java –Xms512m –Xmx512m –Xmn128m –XX:PermSize=32m –XX:MaxPermSize=64m
默認狀態下,HotSpot在新域中使用復制收集器。該域一般分為三個部分。第一部分為Eden,用于生成新的對象。另兩部分稱為救助空間,當Eden充滿時,收集器停止應用程序,把所有可到達對象復制到當前的from救助空間,一旦當前的from救助空間充滿,收集器則把可到達對象復制到當前的to救助空間。From和to救助空間互換角色。維持活動的對象將在救助空間不斷復制,直到它們獲得使用期并轉入舊域。
使用-XX:SurvivorRatio可控制新域子空間的大小。同NewRation一樣,SurvivorRation規定某救助域與Eden空間的比值。比如,以下命令把新域設置成64m,Eden占32m,每個救助域各占16m:
java –Xms256m –Xmx256m –Xmn64m –XX:SurvivorRation=2
如前所述,默認狀態下HotSpot對新域使用復制收集器,對舊域使用標記-清除-壓縮收集器。在新域中使用復制收集器有很多意義,因為應用程序生成的大部分對象是短壽命的。理想狀態下,所有過渡對象在移出Eden空間時將被收集。如果能夠這樣的話,并且移出Eden空間的對象是長壽命的,那么理論上可以立即把它們移進舊域,避免在救助空間反復復制。
但是,應用程序不能適合這種理想狀態,因為它們有一小部分中長壽命的對象。最好是保持這些中長壽命的對象并放在新域中,因為復制小部分的對象總比壓縮舊域廉價。
為控制新域中對象的復制,可用-XX:TargetSurvivorRatio控制救助空間的比例。該值是一個百分比,默認值是50。當較大的堆棧使用較低的sruvivorratio時,應增加該值到80至90,以更好利用救助空間。
用-XX:maxtenuring threshold可控制上限。為放置所有的復制全部發生以及希望對象從eden擴展到舊域,可以把MaxTenuring Threshold設置成0。設置完成后,實際上就不再使用救助空間了,因此應把SurvivorRatio設成最大值以最大化Eden空間,設置如下:
java … -XX:MaxTenuringThreshold=0 –XX:SurvivorRatio=5000
從JVM中獲取信息以助于調整方案
-verbose.gc開關可顯示GC的操作內容。打開它,可以顯示最忙和最空閑收集行為發生的時間、收集前后的內存大小、收集需要的時間等。
打開-xx:+ printgcdetails開關,可以詳細了解GC中的變化。
打開-XX: + PrintGCTimeStamps開關,可以了解這些垃圾收集發生的時間,自JVM啟動以后以秒計量。
最后,通過-xx: + PrintHeapAtGC開關了解堆的更詳細的信息。
為了了解新域的情況,可以通過-XX:=PrintTenuringDistribution開關了解獲得使用期的對象權。
BEA JRockit JVM的使用
Bea WebLogic 8.1使用的新的JVM用于Intel平臺。在Bea安裝完畢的目錄下可以看到有一個類似于jrockit81sp1_141_03的文件夾。這就是Bea新JVM所在目錄。
不同于HotSpot把Java字節碼編譯成本地碼,它預先編譯成類。JRockit還提供了更細致的功能用以觀察JVM的運行狀態,主要是獨立的GUI控制臺或者WebLogic Server控制臺。Bea JRockit JVM支持4種垃圾收集器:
分代復制收集器:它與默認的分代收集器工作策略類似。對象在新域中分配,即JRockit文檔中的nursery。這種收集器最適合單CPU機上小型堆操作。
單空間并發收集器:該收集器使用完整堆,并與背景線程共同工作。盡管這種收集器可以消除中斷,但是收集器需花費較長的時間尋找死對象,而且處理應用程序時收集器經常運行。如果處理器不能應付應用程序產生的垃圾,它會中斷應用程序并關閉收集。
分代并發收集器:這種收集器在護理域使用排它復制收集器,在舊域中則使用并發收集器。由于它比單空間共同發生收集器中斷頻繁,因此它需要較少的內存,應用程序的運行效率也較高,注意,過小的護理域可以導致大量的臨時對象被擴展到舊域中。這會造成收集器超負荷運作,甚至采用排它性工作方式完成收集。
并行收集器:該收集器也停止其他進程的工作,但使用多線程以加速收集進程。盡管它比其他的收集器易于引起長時間的中斷,但一般能更好的利用內存,程序效率也較高。
默認狀態下,JRockit使用分代并發收集器。要改變收集器,可使用-Xgc:<gc_name>,對應四個收集器分別為gencopy, singlecon,gencon以及parallel。可使用-Xms和-Xmx設置堆的初始大小和最大值。要設置護理域,則使用-Xns:
java –jrockit –Xms512m –Xmx512m –Xgc:gencon –Xns128m…
盡管JRockit支持-verbose:gc開關,但它輸出的信息會因收集器的不同而異。JRockit還支持memory、load和codegen的輸出。
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=124&threadID=19031&tstart=0
WebLogic Server Hang產生的一般原因
系統內存不足
- 系統CPU忙,系統文件描述符數目不足,線程死鎖,JVM有GC方面的bug,對于一些特定的情況可以使用truss命令跟蹤系統調用來進行分析。可以打開JVM的gc log,在java命令行上加上-verbose:gc,GC的log輸出在java進程的標準輸出里,在hp的JVM上,可以通過在java命令行上加-Xverbosegc:file=gcfilename來將gc log寫到指定的文件其輸出類似:[GC 15639K->13700K(65280K), 0.0068439 secs]。解決辦法是調整JVM的內存設置和gc算法,升級jvm或是os patch。
- 出現OutOfMemoryError或是觀察到內存吃緊,操作系統本身的剩余內存,通過top或是vmstat觀察,操作系統的swap區,Swap區太小可能導致編譯jsp時報“Not enough space”的錯,操作系統kernel參數中maxsize的大小,如果觀測到數據庫連接池里的連接泄漏,極可能是內存泄漏的先兆
- JVM的heap區大小,通過java命令行中的-Xms,-Xmx指定,建議最小值和最大值設成一樣,可以通過WebLogic console上server/monitor/performance來觀察其使用情況,建議生產系統最256M,一般情況下可以設置為系統剩余物理內存的80%,Heap size太大在一些JVM上會有問題,對于sun和hp的JVM,permanent size太小也會出OutOfMemoryError,在java命令行上加-XX:MaxPermSize=128m
- 盡量減少內存消耗,Session中不要放大的數據,并盡量在不再需要的時候remove掉,如果可以調整session timeout到較小的值,避免在J2EE server端應用里邊調用AWT/swing作圖,調整ejb的cache/pool設置
- 內存泄漏,可以通過WebLogic console來觀察JVM的heap memory使用情況來獲知是否有內存泄漏情況,采用第三方輔助工具來獲取更詳細信息,如Jprobe/OptimizeIt;有可能是weblogic的bug,但絕大部分情況是由用戶的應用引起的,最常見的代碼問題是數據庫連接沒正常關閉。
系統CPU忙
- 如果用戶訪問量很大,CPU占用很高(user態)并不是異常
- 如果是kernel態很多,需要OS廠商調整操作系統
- 采用top找到占用CPU很多的進程,如果是非weblogic進程,應該考慮將其移到另外的server上運行,如果是運行weblogic的java進程,通過做thread dump(詳細信息后邊會介紹到)來確認是那段代碼導致了這么高的CPU使用(也有可能是os/jvm本身不正常)
系統文件描述符數目不足
Log中有“too many open files”的錯誤,表示達到了系統對一個進程能同時打開的文件數的限制:
- ulimit –a –H 可以查看當前限制
- ulimit –n number可以來更改當前環境的設置,建議至少設到4096
- Solaris上可以通過/usr/proc/bin/pfiles pid來查看指定進程的限制和當前使用的file descriptor數目
- Solaris上root用戶可以通過/usr/proc/bin/plimit -n soft,hard pid 來動態更改進程的文件描述符的限制
線程死鎖
對于原因不明的hang或是響應慢,最根本的方法就是獲取thread dump信息,對于windows系統,在運行java的窗口按Ctrl+Break,對于UNIX系統,首先用ps找到運行weblogic的java進程的pid,然后執行kill –3 pid,JVM將負責將所有java進程的狀態、執行堆棧dump到其標準輸出,為了方便獲取thread dump信息,在weblogic啟動的時候,最好將其標準輸出重定向到一個文件,為了反映線程狀態的動態變化,需要接連多次做thread dump,每次間隔10-20s。
對于thread dump信息,主要關注的是線程的狀態和其執行堆棧,線程的狀態一般為三類
- Runnable(R):當前可以運行的線程
- Waiting on monitor(CW):線程主動wait
- Waiting for monitor entry(MW):線程等鎖
一般關注的都是第一和第三種狀態的線程
CPU很忙則關注runnable的線程
CPU閑則關注waiting for monitor entry的線程
一種典型的死鎖是由于在server端應用(比如servlet)中請求由同一weblogic實例serve的資源,解決辦法就是將該servlet放到另外的執行隊列里去執行。
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=4525&tstart=0&quint=true
"指定的網絡名不再可用"錯誤
wl6.1和wl7.0部署應用后都在后臺拋出“java.net.SocketException: ReadFile failed: 指定的網絡名不再可用”,這不是一個致命的錯誤,只會在中文Window上。如Hilaser和linstone提出了辦法:
- 如果你是自己隨便玩玩,將你的JDK升級到jdk1.3.1_06
- 用wls6.1 sp4,到如下位置下載
http://commerce.bea.com/SoftwareProductDetailWLS?SWName=WebLogic+Server+Evaluation+Software&SWVersion=Version+6.1+SP4&SWPlatform=Microsoft+Windows+NT%2F2000 - 運行cmd,打開窗口菜單(點擊左上角窗口圖標),選擇默認值,將默認代碼頁改為437。
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=9393&tstart=0
集群配置 集群簡明配置過程
在wls7中,集群的受管服務器無需使用相同的端口,這使在一個主機上實現集群成為可能。下面的例子是在一個主機(172.30.94.60)上的 wls7里創建一個集群(mycluster)DEMO,包括管理服務器(myserver:7001)、集群(兩個受管服務器serverA: 8001、serverB:8003)、代理服務器(ProxyServer:80)。應用WebApp是部署在集群上的web應用,而 DefaultWebApp是部署在代理服務器上用來代理集群應用WebApp的。具體步驟如下:
1.創建集群域clusterdomainnew,管理服務器myserver(7001:7003);
2.創建Machine:admin(myserver,ProxyServer),cluster(serverA,serverB);
3.創建受管服務器serverA(8001),serverB(8003);
4.創建集群mycluster;
Choose Servers for this Cluster: serverA,serverB
config.xml:
<Cluster ClusterAddress="172.30.94.60:8001,172.30.94.60:8003"
MulticastAddress="237.0.0.1" MulticastPort="7777" Name="mycluster"/>
5.部署WebApp應用,targets mucluster;
6.創建代理服務器ProxyServer(80),將DefaultWebApptargets ProxyServer;
7.編輯DefaultWebApp應用,注冊HttpClusterServlet:
<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
<servlet-class>weblogic.servlet.proxy.HttpClusterServlet</servlet-class>
<init-param>
<param-name>WebLogicCluster</param-name>
<param-value>172.30.94.60:8001:8002|172.30.94.60:8003:8004</param-value>
</init-param>
<init-param>
<param-name>DebugConfigInfo</param-name>
<param-value>ON</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>/</url-pattern></servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.jsp</url-pattern> </servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.htm</url-pattern> </servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
8.重啟myserver;
9.啟動serverA:startManagedWeblogicserverAhttp://172.30.94.60:7001;
啟動成功后,訪問http://172.30.94.60:8001/WebApp/ 驗證一下!
10.啟動serverB:startManagedWeblogicserverBhttp://172.30.94.60:7001;
啟動成功后,訪問http://172.30.94.60:8003/WebApp/ 驗證一下!
11. 啟動ProxyServer:startManagedWeblogic ProxyServerhttp://172.30.94.60:7001。
訪問http://172.30.94.60/WebApp,是不是大功告成了:)
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=3257&tstart=25&quint=true
WebLogic應用在集群環境下的一些基本知識
基本概念
1.硬件的cluster和WebLogic的cluster不是一回事,硬件做的是冷備份,對用戶的session,用戶請求的負載均衡等的處理是做不到的,而且一般硬件的雙機熱備也不是時時的備份,而是間隔一段時間再將主機上的數據copy過來,而WebLogic Server的cluster就不是這樣,其session的數據是時時的復制的,對不經常更改的jndi等的復制雖然也是定期完成的,但update的時間間隔很短
2.WebLogic Server的cluster配置非常方便,請參考dev2dev學堂
http://dev2dev.bea.com.cn/techdoc/200506554.html
如果你要對集群做擴展,操作也非常方便,你只需要啟動一個指向這個集群的Admin Server的managed server就可以了,由這個集群中的唯一的Admin Server往這個managed server上部署應用
3.http狀態會話復制就是session的復制,例如你登陸了系統,如果一個服務器壞了,cluster會將你的請求轉發集群中的另外一個server,由其繼續處理你的這個請求,而不要重新登陸。
4.EJB集群中有狀態,無狀態EJB的意義和區別請看J2EE中EJB的相關知識
5.對EJB的集群,也是非常簡單的,直接把EJB應用target到cluster的server上!
6.對WebLogic Server來說,它的cluster做session的in memory的時時復制,這適用于web application及stateful session BEA的session內容的復制
7.對非stateful的EJB,WebLogic Server的cluster做其負載均衡及failover的工作(failover只針對EJB的stateless BEAN
集群規劃
在規劃集群配置時,應該牢記以下關于網絡環境與集群配置的限制。
1.首先,集群中的WebLogic主機必須使用永久的靜態IP地址。動態IP地址分配不能用于集群環境。如果服務器位于防火墻后面,而客戶機位于防火墻外面,那么服務器必須有公共的靜態IP地址,只有這樣,客戶端才能訪問服務器。
2.集群中的所有WebLogic服務器必須位于同一個局域網,并且必須是IP廣播可到達的。
3.集群中的所有WebLogic服務器必須使用相同的版本。配置集群中的服務器,使它們支持所提供的服務。對于使用了JDBC連接的EJB,所有部署了某EJB的服務器必須具有相同的部署與持久化配置。也就是說所有服務器都應該有相同的JDBC配置。所有部署了servlet的主機必須維護一組具有相同ACL的servlet。
如果客戶端應用直接使用JDBC連接池,那么你必須為每個WebLogic服務器創建相同的連接池(并具有相同的ACL)。這意味著集群所使用的連接池應該可以在所有的機器上創建。例如,一臺運行WebLogic的NT服務器配置了連接Microsoft SQL Server數據庫的連接池,那么一個包含非Windows機器(即不支持Microsoft SQL Server連接的機器)的集群不能使用這個連接池。
其它配置細節可能會因不同的集群成員而不同。例如,一臺Solaris服務器可以比一臺小的 NT工作站處理更多的登錄請求。這種差異是可以接受的。因此,正如這里所給出的例子,對于那些與性能相關的屬性,你可以根據每個集群成員的特點來配置不同的值,只要所有成員的服務配置相同即可。因此,集群中的WebLogic服務器在所有與WebLogic服務、類文件以及外部資源(例如數據庫)相關的方面具有相同的配置。
服務器配置任務列表
可以通過管理控制臺進行以下服務器配置:
- Server節點配置單獨的服務器可以配置的屬性包括名字:監聽端口與IP地址。
- Server節點克隆一個服務器:克隆的服務器保存了原來服務器的屬性值,你可以使用Server節點中的Configuration配置新服務器的名字。
- 使用管理控制臺的Server節點來刪除一個服務器:點擊要刪除的服務器的圖標,將彈出一個刪除服務器的確認對話框,點擊對話框中的Yes按鈕將刪除服務器。
- 使用管理控制臺的Server節點查看一個服務器的日志:點擊要查看的服務器,點擊Monitoring標簽頁,點擊View Server Log連結,便可以在管理控制臺的右窗格查看服務器日志。
- 使用管理控制臺的Server節點查看一個服務器的JNDI樹:點擊所要查看的服務器,然后點擊Monitoring標簽頁,點擊該頁面上View JNDI Tree連接,該服務器JNDI樹的信息便顯示在管理控制臺的右窗格中。
- 使用管理控制臺的Server節點查看服務器的執行隊列:點擊所要查看的服務器,然后點擊Execute Queue 鏈接,然后查看管理控制臺右邊窗格里的表格中的內容。
- 使用管理控制臺的Server節點查看服務器的執行線程:點擊所要查看的服務器,然后點擊Execute Queue 鏈接,然后查看管理控制臺右邊窗格里的表格中的內容:
- 使用管理控制臺的Server節點查看server sockets:點擊所要查看的服務器,點擊View Sockets連接,然后查看管理控制臺右邊窗格里的表格中的內容。
- 使用管理控制臺的Server節點查看服務器連接:點擊所要查看的服務器,點擊View Connections連接,然后查看管理控制臺右邊窗格里的表格中的內容。
- 使用管理控制臺的Server節點進行強制垃圾收集,點擊要監控的服務器,點擊JVM標簽頁,點擊頁面上的Force Garbage Collection連接,將彈出是否要進行垃圾收集的確認對話框。
- Server節點監視服務器的安全:點擊要監控的服務器,點擊Monitoring標簽頁,點擊Security標簽頁,將顯示安全信息。
- Server節點查看服務器的版本:點擊要查看的服務器,點擊Version標簽頁,將顯示服務器的版本信息。
- Server節點監控服務器集群:點擊要監控的服務器,點擊Cluster標簽頁,將顯示該服務器的集群數據。
- Server節點來部署EJB:點擊需要部署EJB的服務器,點擊需要分發的EJB并使用移動控件將它移到被選列中,點擊Apply來保存你的選擇。
- Server節點來監視部署在某一服務器上的所有EJB:點擊需要監視的服務器,點擊Monitor All EJB Deployments連接來顯示EJB的部署列表。
- Server節點將web應用組件部署在某一服務器上:選擇要部署web應用的服務器:選擇需要部署的web應用,然后通過移動控件將它移到被選列中,點擊Apply來保存你的選擇。
- Server節點來監控某一服務器上的所有web應用組件:點擊web應用所在的服務器,然后點擊Monitor All Web Applications連接來顯示Web Application 的部署列表。
- Server節點在服務器上部署啟動與終止類:點擊需要部署啟動類的服務器,然后點擊需要部署的啟動類并將它移到被選列中,點擊Apply來保存你的選擇,使用終止類控件來部署終止類的過程與此相同。
- Server節點為服務器分配JDBC連接池:點擊web server分配表中的一個服務器,在Available列中點擊一到多個JDBC連接池,并通過移動控件將所選擇的JDBC連接池移到Chosen列,點擊Apply來保存你所做的分配。
- Server節點為一個服務器分配WLEC連接池:點擊需要分配WLEC連接池的服務器:在Available列中選擇一個或多個要分配的WLEC連接池,使用移動控件將所選擇的WLEC連接池移動到Chosen列。
- 通過管理控制臺的Server節點監視某一服務器上的所有WLEC連接池:選擇一個需要監視連接池的服務器,點Monitor All WLEC Connection Pools on This Server鏈接,所有分配給這臺服務器的連接池會顯示在右窗格中的WLEC Connection Pools列表中。
- Server節點為一臺服務器分配XML 注冊表,選擇要分配XML 注冊表的服務器,從XML 注冊表的下拉列表中選擇一個注冊表,點Apply保存設置。
- Server節點分配郵件會話:選擇一個要分配郵件會話的服務器,從Available列中選擇要分配給服務器的郵件會話,使用移動控件把所選擇的移動會話移動到Chosen列中,點Apply按鈕保存設置。
- 通過管理控制臺為服務器分配文件T3s:選擇一個要分配文件T3的服務器,從Available列中選擇要分配給服務器的文件T3s,使用移動控件把所選擇的文件T3s移動到Chosen列,點Apply按鈕保存設置。
- Connection連接,然后查看管理控制臺右邊窗格里的表格中的內容。
- 使用管理控制臺的Server節點進行強制垃圾收集:點擊要監控的服務器,點擊JVM標簽頁,點擊頁面上的Force Garbage Collection連接,將彈出是否要進行垃圾收集的確認對話框。
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=4800&tstart=0&quint=true
安全管理 WebLogic AD ldap 配置方法
Weblogic AD ldap 配置方法
一創建并配置windows端AD.
1 在AD中加入新的OU,myOrg.
2 在myOrg中加入兩個ou ,groups 和people。在groups中加入兩個組group1,group2,在people中加入兩個用戶user1,user2.
3配置user1用戶屬于組group1,user2用戶屬于組group2。
windows Active Directory 端配置完畢。
二得到配置參數
1 下載ldap brSofterra LDAP Browser 2.5 (可用google搜索)
2 配置ldap browser。
打開ldap browser應用程序。創建新的profile。
填入參數:
單擊fetch DNs (only ldap v.3) 得到自動配置的ldap 基礎配置
在DC=www 前面加入AD中配置的OU=myOrg。
完成后如下圖。表示連接AD 成功
得到base DN 參數為 OU=myOrg,DC=www,DC=test,DC=com, (DC=www,DC=test,DC=com視您的windows域而定,本例域為www.test.com)。
三配置weblogic server
啟動域,打開控制器http://localhost:7001/console。
配置新的authentication。
點擊authentication 。在右邊選擇configure a new active directory authenticator
1 General 中的配置
2 Active Directory欄配置
3 user欄配置
user欄只需要修改User Base DN 為自己的user base DN,這里填入ldap browser 中得到的數據OU=myOrg,DC=www,DC=test,DC=com,不過我們要得到的是用戶所以在前面在加入我們創建的OU=people。
4 group 欄配置。
group 欄只需要修改group Base DN 為自己的group base DN,這里填入ldap browser 中得到的數據OU=myOrg,DC=www,DC=test,DC=com,不過我們要得到的是組所以在前面在加入我們創建的OU=groups。
保存后其余的都不用在修改了。
我們再次點擊user時,ldap中的用戶和組就加入到weblogic server 的用戶中了
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=8194&tstart=25&quint=true
口令的保護
保護用來訪問WebLogic服務器資源的口令是很重要的。在過去,用戶名與口令以明文的形式存儲在WebLogic服務器的安全域中。現在 WebLogic服務器對所有口令進行散列化。當WebLogic服務器獲得一個客戶端請求時,客戶端所輸入的口令也被散列化,然后把散列化結果與所保存的散列化口令進行比較,看它們是否相互匹配。
每個filerealm.properties文件都有一個與它關聯的SerializedSystemIni.dat文件,這個文件被用來散列化口令。在安裝時,SerializedSystemIni.dat文件保存在\wlserver6.1\config\mydomain目錄下,如果該文件被破壞,那么就需要重新配置WebLogic服務器。
我們建議你采用以下預防措施:
備份SerializedSystemIni.dat文件,并將其與filerealm.properties文件的備份存放于同一目錄下。設置SerializedSystemIni.dat文件的訪問權限,例如只允許WebLogic服務器的管理員有讀寫這個文件的權限,其它用戶沒有這個文件的任何權限。
如果你使用的是weblogic.properties文件,并且想散列化這個文件中的口令,你可以用管理控制臺主窗口的Convert weblogic.properties選項將weblogic.properties文件轉換為config.xml文件。一旦文件被轉換,則所有現存的口令就已經被保護了。
Config.xml文件中的不在含有明文的口令,若在其中保存明文的口令,config.xml會對其進行加密并被散列化該口令。被加密的口令不能從一個域復制到另一個域,而是應該使用明文口令替換config.xml中被加密的散列化口令,然后再將文件復制到另外一個域中。管理控制臺在下一次寫文件時會加密并散列化口令。
要保護WebLogic服務器的口令,執行以下操作:
1. 打開管理控制臺
2. 點擊Security節點
3. 在管理控制臺右側窗格中選擇Passwords標簽頁。
4. 定義該標簽頁中需要配置的屬性,按照相應的提示輸入值,并選中必須選擇的復選框(詳細信息,參見下表)。
5. 點Apply按鈕保存所做的設置
6. 重啟WebLogic服務器。
如下詳細描述了Security Configuration窗口的Password標簽頁上的各個屬性。
- Minimum Password Length: 口令所需的長度,至少為8個字符。缺省為8個字符
- Lockout Enabled: 在超過Lockout Threshold次嘗試后,是否需要鎖住某個登錄無效的帳號。缺省情況下,該屬性被啟用。
- Lockout Threshold:當一個用戶試圖登錄到一個用戶帳戶,因口令不對而失敗,那么多少次這樣的失敗登錄后將鎖住這個帳號。以后對該帳號的訪問(即使是username/password是正確)也將引發Security異常;在管理員對該帳號進行解鎖前,或在鎖住期限內,該帳號一直處于鎖住的狀態。注意非法登錄必須在Lockout Reset Duration屬性所定義范圍內。默認為5
- Lockout Duration:該屬性定義了當某一帳戶因為在Lockout Reset Duration期限內發生非法登錄而被鎖住后,多長時間范圍內該用戶帳號不能被使用。要解開一個被鎖住的用戶帳號,你必須擁有 weblogic.passwordpolicy中的unlockuser權限。默認為30分鐘。
- Lockout Reset Duration:該屬性定義了在多長時間里,非法登錄某一帳號將導致該帳號被鎖住。在本屬性定義的時間范圍內,當非法登錄的次數超過了Lockout Threshold屬性所定義的值,那么該帳號將被鎖住,例如,該屬性被設置為5分鐘,當帳號在6分鐘內被非法登錄了3次,那么該帳號不會被鎖住,但是,如果在5分鐘內,發生了5次非法登錄,那么該帳號將被鎖住。缺省為5分鐘。
- Lockout Cache Size:指定無效的或非法的登錄意圖的緩存大小。缺省為5
注:本文針對weblogic6,其他版本請參考
原文地址
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=930&tstart=50&quint=true
其它資源
本文前面部分刪除了許多重復的文章,也沒有包括一些比較復雜的文章,大家可以到Dev2dev WebLogic管理板塊
http://dev2dev.bea.com.cn/bbs/forum.jspa?forumID=81&start=0
和本版精華
http://dev2dev.bea.com.cn/bbs/forum!quint.jspa?forumID=81
下查看。
本文隨同本論壇其它板塊的資料,也保留在社會書簽http://del.icio.us/dev2dev.cn處,大家可以也嘗試使用這種書簽,來共同維護我們的資源,人多力量大。以下我說說其他有用資料。
dev2dev 學堂這里的資料十分的豐富。
- 實戰集錦非常實用,里面主要包括了一些WebLogic出現的問題以及解決方案,其中你不僅可以學到WebLogic的許多知識,也可以知道許多Java與操作系統的基礎知識,也可以發現許多排錯和調優的好工具以及使用方法。
- WebLogic Server里面包括了大量的基礎教程,既有圖文并茂的教程,也有許多動畫教程。你可以學到WebLogic的在Windows和Linux/UNIX下的安裝,可以學到如何配置SSL和集群,如何發布簡單應用程序,如何使用JMS,如何調用你的第一個JSP文件。
- WebLogic常見問題包括經常遇到了簡單問題以及快捷的回答。
dev2dev 學堂:http://dev2dev.bea.com.cn/bbs/school/index.html
實戰指南:http://www.bea.com.cn/support_pattern/index.htm
WebLogic Server學堂:http://dev2dev.bea.com.cn/products/wlser/list1.html
常見問題:http://www.bea.com.cn/services/custsupp/techresor/faq/faq_weblogic_list.jsp
WebLogic代碼庫和CodeShare代碼庫是以前WebLogic為大家提供的一些代碼實例,CodeShare是最近發起的一個項目,代碼庫的許多代碼會轉移到CodeShare下,但是現在還沒有完全做到,許多代碼還只能在代碼庫里找到。如果想學習某些比較復雜的技術,看實例代碼是最好的方式,而且這些代碼通常會附有非常詳細的文檔來幫助使用。
代碼庫:http://dev2dev.bea.com.cn/resource/codelib/index.html
代碼庫Weblogic部分:http://dev2dev.bea.com/code/wls.jsp
CodeShare:http://dev2dev.bea.com.cn/resource/codeshare/index.html
在線論壇Dev2dev
有一些文章沒有收錄到這里,主要是因為篇幅太長,或者內容與網站的其他地方有些重復,可是還是很精彩的文章。
- BLOGIC 8.1下集群配置實例
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=19302 - 一個Domain里的機器可以是不同的平臺嗎?
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=1692 - Weblogic的access.log詳細說明
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=8669 - OutOfMemoryError錯誤的調節,JVM的一個參數
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=9779 - 在FreeBSD下安裝Linux版本的WebLogic
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=9554 - axman與zghr對JDBC Connection的討論
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=9121 - WebLogic Server管理指南
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=8387
學習WebLogic起步過程
經常有人問WebLogic如何起步,這里列下大體的過程,具體可以參考dev2dev學堂和論壇精華。
- 下載
到http://dev2dev.bea.com.cn/doccenter/soft.html下載相應的版本 - 安裝
只以windows為例,直接運行下載的安裝程序就然后根據步驟一路默認就好。 - 配置最基本的domain
WebLogic安裝好后應該在運行“開始-所有程序-Bea WebLogic Platform-Configuration Wizard”或者是"C:\bea\weblogic81\common\bin\config.cmd",就可以配置一個Domain,也就是一組服務器單元。 - 使用console
配置好了一個domain,就可以啟動Admin Server,可以使用“開始 - 所有程序 - Bea WebLogic Platform - Configuration Wizard - User Projects – mydomain – Start Server”, 或者是到了mydomain目錄調用startWebLogic.cmd,就可以啟動Server,然后在瀏覽器中進入http://localhot:7001/conole就進入了管理界面,通常的管理都在這里進行。 - 發布應用
可以到console的Deployment部分發布