?
日常管理?WebLogic?Platform?8.1?永不過(guò)期的開(kāi)發(fā)版license
下載地址為:
http://dev2dev.bea.com.cn/bbs/servlet/D2DSer ... 8992-44196-240/license.bea
?
使用方式:
替換c:\bea目錄下的這個(gè)文件,這樣就可以使WebLogic?Platform用不過(guò)期
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID ... 2&tstart=0&quint=true
如何遠(yuǎn)程啟動(dòng)WebLogic服務(wù)?
用telnet遠(yuǎn)程控制服務(wù)器,遠(yuǎn)程啟動(dòng)WEBLOGIC服務(wù),啟動(dòng)后關(guān)閉telnet,WebLogic服務(wù)也跟著停止,這是因?yàn)槭褂胻elnet啟動(dòng)的進(jìn)程會(huì)隨著telnet進(jìn)程的關(guān)閉而關(guān)閉。所以我們可以使用一些UNIX下的命令來(lái)做到不關(guān)閉。
?
使用如下命令:
nohup?startWeblogic.sh&
?
如果想要監(jiān)控標(biāo)準(zhǔn)輸出可以使用:
tail?-f?nohup.out
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID ... 9&tstart=0&quint=true
?
控制臺(tái)左邊的樹(shù)結(jié)構(gòu)看不見(jiàn)?
這是因?yàn)闉g覽器沒(méi)有安裝合適版本的JRE插件來(lái)支持Applet。
可以到http://java.sun.com/products/plugin/?下載相應(yīng)瀏覽器的插件來(lái)解決這個(gè)問(wèn)題。
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID ... 3&tstart=0&quint=true
WebLogic?配置出來(lái)的各種域有什么區(qū)別?
請(qǐng)看這個(gè)鏈接中的Table?16-1?Configuration?Template?Summary?,說(shuō)的很明白
http://e-docs.bea.com/platform/docs81/confgwiz/tempref.html
Table?16-1?Configuration?Template?Summary?
Template
????
Required?WebLogic?Platform?Component
????
Filename
????
Description
Avitek?Medical?Records?Sample?Domain
????
WebLogic?Server
????
medrec.jar
????
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.
Basic?WebLogic?Integration?Domain
????
WebLogic?Integration,
WebLogic?Workshop,
WebLogic?Server
????
wli.jar
????
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.
Basic?WebLogic?Platform?Domain
????
WebLogic?Platform?(all?components?must?be?installed)
????
platform.jar
????
Creates?a?domain?that?supports?the?development?of?applications?using?all?WebLogic?Platform?components.
Basic?WebLogic?Portal?Domain
????
WebLogic?Portal,
WebLogic?Workshop,
WebLogic?Server
????
wlp.jar
????
Creates?a?domain?that?supports?the?development?of?WebLogic?Portal?solutions.
Basic?WebLogic?Server?Domain
????
WebLogic?Server
????
wls.jar
????
Creates?a?simple?WebLogic?Server?domain?without?any?sample?applications.
Basic?WebLogic?Workshop?Domain
????
WebLogic?Workshop,
WebLogic?Server
????
wlw.jar
????
Creates?a?domain?that?supports?the?development?of?WebLogic?Workshop?solutions.
WebLogic?Server?Examples?Domain
????
WebLogic?Server
????
examples.jar
????
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 ... 8&tstart=0&quint=true
?
Too?many?open?files錯(cuò)誤的處理
在有些Linux下由于操作系統(tǒng)的限制,單一進(jìn)程可以打開(kāi)的文件數(shù)有限制,引起WebLogic報(bào)告錯(cuò)誤,解決這問(wèn)題需要編譯內(nèi)核并且調(diào)節(jié)一些限制參數(shù)。
?
在Linux內(nèi)核2.4.x中需要修改源代碼,然后重新編譯內(nèi)核才生效。編輯Linux內(nèi)核源代碼中的?include/linux/fs.h文件,將?NR_FILE?由8192改為65536,將NR_RESERVED_FILES?由10?改為?128。編輯fs/inode.c?文件將MAX_INODE?由16384改為262144。一般情況下,系統(tǒng)最大打開(kāi)文件數(shù)比較合理的設(shè)置為每4M物理內(nèi)存256,比如256M內(nèi)存可以設(shè)為16384,而最大的使用的i節(jié)點(diǎn)的數(shù)目應(yīng)該是最大打開(kāi)文件數(shù)目的3倍到4倍。另外,對(duì)每個(gè)進(jìn)程的設(shè)置:
ulimit?-n?4096?將每個(gè)進(jìn)程可以打開(kāi)的文件數(shù)目加大到4096,缺省為1024
ulimit?-m?4096?限制每個(gè)進(jìn)程使用的內(nèi)存數(shù)。
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID ... 1&tstart=0&quint=true
?
Apache2和weblogic7實(shí)現(xiàn)虛擬主機(jī)
選擇apache2,是因?yàn)槟壳皐ls7只支持apache2的結(jié)合.
?
1.首先,正確安裝apache2,這里我們假設(shè)安裝在C:\apache?group,安裝完畢,需要測(cè)試apache2是否支持動(dòng)態(tài)加載模塊功能,這樣測(cè)試,到命令
?
提示符下運(yùn)行:
c:\>apache?group\apache2\bin\apache?-l
如果列出:
mod_so.c
則表示支持,然后將本篇文章附件中的mod_wl_20.so拷貝到apache?group\apache2\modules下面,運(yùn)行:
c:\>apache?group\apache2\bin\apache?-t
如果輸出:
Syntax?Ok
表示W(wǎng)ebLogic?Server?plug-in安裝成功。
?
2.正確安裝weblogic7.0。這里我們假設(shè)wls7的安裝路徑是:c:\bea。然后用域配置向?qū)渲靡粋€(gè)域,我們假設(shè)域
的名稱為amjn,路徑是c:\bea\user_projects\amjn,然后在amjn下面分別建立兩個(gè)站點(diǎn)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"/>
,然后重新啟動(dòng)運(yùn)行\(zhòng)amjn\startWebLogic.cmd,一定要運(yùn)行正常。到這里,weblogic算是配置完成了。
?
3.現(xiàn)在開(kāi)始配置apache多個(gè)虛擬主機(jī),首先我們先打開(kāi)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服務(wù)器綁定的ip,然后打開(kāi)apache2\conf\httpd.conf文件,在174行,注意是174行加入如下語(yǔ)句:
#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為L(zhǎng)isten: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>
啟動(dòng)apache,如果沒(méi)有問(wèn)題(可以通過(guò)logs/error.log查看),那就一切ok了
?
4.現(xiàn)在你可以分別敲入www.web1.com/index.jsp,訪問(wèn)的將是web1/index.jsp,敲入www.web2.com/index.jsp訪問(wèn)的將是web2/index.jsp
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID ... 6&tstart=0&quint=true
如何限制公網(wǎng)用戶訪問(wèn)WebLogic的控制臺(tái)呢?
我們的weblogic(版本6.1)應(yīng)用部署在內(nèi)部網(wǎng)上,通過(guò)防火墻映射到公網(wǎng)上,但公網(wǎng)用戶通過(guò)鍵入域名:www.xxx.com/console,就可進(jìn)入weblogic的登陸頁(yè)面,用戶可猜測(cè)管理員的密碼,如何屏蔽公網(wǎng)用戶對(duì)weblogic控制臺(tái)的訪問(wèn)呢?
?
方法1:
在控制臺(tái)上點(diǎn)擊左邊的你那個(gè)domain,將Console?Enabled這個(gè)選項(xiàng)去掉,這樣就完全不能使用console了
方法2:
將“console”改名,改“Console?Context?Path”的“console”為一個(gè)希奇古怪的名字就可以了
方法3:
不要給WebLogic公網(wǎng)ip,通過(guò)一個(gè)有公網(wǎng)ip的apache等proxy來(lái)訪問(wèn)WebLogic
方法4:
啟動(dòng)Administration?Port
方法5:
應(yīng)用不發(fā)布在Admin?Server上,Admin?Serve在外網(wǎng)不可見(jiàn)
?
原文地址:
http://dev2dev.bea.com.cn/bbs/threa ... =81&threadID=2230
?
開(kāi)機(jī)自動(dòng)啟動(dòng)oracle和weblogic
我的機(jī)器是5L,oracle9i,weblogic6.1,HTTPServer
由于給別人裝的機(jī)器,對(duì)方水平有限,為了省心,還是讓系統(tǒng)起來(lái)自動(dòng)運(yùn)行各項(xiàng)應(yīng)用比較好:)
首先自動(dòng)啟動(dòng)oracle9i,9i裝在oracle文件系統(tǒng)下,在/oracle下建立文件startdb,
文件內(nèi)容
echo?"begin?to?start?oracle"
lsnrctl?start
sqlplus?/nolog?<<EOF
connect?/as?sysdba
startup
exit
exit
echo?"oracle?have?started"
給startdb執(zhí)行權(quán)限
自動(dòng)關(guān)閉oracle9i,在/oracle下建立文件stopdb
sqlplus?/nolog?<<EOF
connect?/as?sysdba
shutdown?immediate
好了啟動(dòng)和關(guān)閉oracle腳本完成還要加到系統(tǒng)的啟動(dòng)和關(guān)閉文件里,另外還要在啟動(dòng)oracle后啟動(dòng)weblogic
在/etc下建立文件rc.startdb,腳本如下
su?-?oracle?"-c?/oracle/startdb"????#啟動(dòng)oracle
cd?/weblogic/wlserver6.1/config/mydomain??#轉(zhuǎn)到weblogic啟動(dòng)目錄,必須
./startWebLogic.sh??#啟動(dòng)weblogic
給文件執(zhí)行權(quán)限
注意由于weblogic在啟動(dòng)后如果用戶退出telnet?就自動(dòng)關(guān)閉,所以要把weblogic放在后臺(tái)執(zhí)行,所以在startWebLogic.sh文件中啟動(dòng)weblogic的命令行改為可以在后臺(tái)運(yùn)行,用?nohup?(啟動(dòng)命令行)?>/home/weblogic.log?&
把weblogic的運(yùn)行信息存到/home/weblogic.log文件中
下面要把啟動(dòng)信息放到inittab中,加入一行
startdb:2345678:wait:/etc/rc.startdb
這樣系統(tǒng)啟動(dòng)后會(huì)自動(dòng)啟動(dòng)oracle9i
系統(tǒng)關(guān)機(jī)自動(dòng)關(guān)閉oracle9i
在/etc下建立腳本文件rc.stopdb
su?-?oracle?"-c?/oracle/stopdb"
給執(zhí)行權(quán)限
由于5L中安裝完成后沒(méi)有/etc/rc.shutdown文件,需要手工創(chuàng)建一個(gè)
內(nèi)容如下
#!/bin/ksh?
rc.stopdb
給執(zhí)行權(quán)限
這樣當(dāng)系統(tǒng)關(guān)機(jī)時(shí)會(huì)自動(dòng)尋找rc.shutdown并執(zhí)行,系統(tǒng)可以自動(dòng)關(guān)閉oracle9i
當(dāng)然可以把一些命令行直接寫(xiě)入inittab或rc.shutdown中,看自己的喜好了:)
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID= ... 5&tstart=25&quint=true
?
如何測(cè)試虛擬主機(jī)
在本機(jī)配置了虛擬主機(jī),沒(méi)有DNS?Server,如何進(jìn)行測(cè)試呢?
C:\WINNT\system32\drivers\etc\hosts加入一行:127.0.0.1?test.project.com.cn
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID= ... 6&tstart=25&quint=true
?
WebLogic的Startup?Class應(yīng)該放在那個(gè)目錄里
WebLogic在啟動(dòng)的時(shí)候可以指定Startup?Class,它在任何一個(gè)應(yīng)用的類被加載之前調(diào)用,所以應(yīng)該加到啟動(dòng)時(shí)的系統(tǒng)類路徑下,可以修改startWebLogic.cmd或?commEnv.cmd文件相應(yīng)的CLASSPATH部分,加入Startup?Class的類路徑。
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID= ... 9&tstart=25&quint=true
?
如何停止WebLogic服務(wù)?
直接殺死進(jìn)程不是標(biāo)準(zhǔn)的做法,應(yīng)該使用如下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來(lái)強(qiáng)制關(guān)掉服務(wù)器。
?
另外也可以直接使用stopWebLogic.cmd。
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID= ... 9&tstart=25&quint=true
?
應(yīng)用管理?JNDI里面加和不加java:comp/env/前綴有什么區(qū)別?
java:comp/env是標(biāo)準(zhǔn)的J2EE環(huán)境查找規(guī)則,使用這種方式必須做一次環(huán)境名到JNDI名的映射,這種隔離使得在寫(xiě)程序時(shí)不必關(guān)注真正的JNDI名字,其實(shí)說(shuō)白了跟把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>
………………….
而不使用這個(gè)前綴的,其實(shí)就是直接的JNDI名
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID= ... 74&tstart=0&quint=true
?
如何更改默認(rèn)打開(kāi)主頁(yè)?如何設(shè)置虛擬目錄?
設(shè)置默認(rèn)打開(kāi)主頁(yè):
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= ... 33&tstart=0&quint=true
?
WebLogic?Builder使用簡(jiǎn)介
在DEV2DEV論壇上有網(wǎng)友會(huì)問(wèn)類似于這樣的問(wèn)題“如何為EJB寫(xiě)那些部署描述文件如ejb-jar.xml以及WebLogic-ejb-?jar.xml呢?”,對(duì)初學(xué)EJB的朋友來(lái)說(shuō),是一個(gè)比較困難的問(wèn)題,如果不想手寫(xiě)的話,可以采用BEA提供的WebLogic?Builder工具或是JBuilder等工具來(lái)自動(dòng)生成。本文就WebLogic?Builder的使用進(jìn)行一個(gè)簡(jiǎn)單的介紹,權(quán)且當(dāng)一個(gè)入門的指引,同時(shí)歡迎各位朋友就你的經(jīng)驗(yàn)對(duì)這篇文章進(jìn)行補(bǔ)充完善。使用步驟如下:
?
一、準(zhǔn)備。
例子就用WebLogic安裝完后的example中statelessSession?EJB的例子,給個(gè)路徑參考
C:?\bea\weblogic700\samples\server\src\examples\ejb20\basic\statelessSession? 將這個(gè)目錄下的.java文件全部拷貝出來(lái)放到一個(gè)臨時(shí)目錄中比如C:\temp\WebLogic_Builder_Test來(lái)做這個(gè)實(shí)驗(yàn),拷貝的文件有Client.java,Trader.java,TraderBean.java,TradeResult.java,?TraderHome.java。
?
二、對(duì)java原文件進(jìn)行編譯
命令行中進(jìn)入C:\temp\WebLogic_Builder_Test,鍵入 javac?-d?.?*.java,
?
三、打jar包
命令行中,C:\temp\WebLogic_Builder_Test目錄下,鍵入jar?-cvf?test.jar?*.*,生成test.jar包。
?
四、打開(kāi)WebLogic?Builder工具,選擇并打開(kāi)我們?cè)诓襟E三中創(chuàng)建的test.jar包,這時(shí)WebLogic?Builder給出一個(gè)提示“Unable?to?locate?deployment?descriptors.?C:\temp\WebLogic_Builder_Test\test.jar.?Would?you?like?new?descriptors?created?for?you?”,這意思明白了吧,WebLogic?Builder要為你創(chuàng)建基本的部署描述符文件了,當(dāng)然點(diǎn)擊是咯,然后選擇保存,這樣你的C:\temp\WebLogic_Builder_Test目錄下的test.jar文件就有那兩個(gè)部署描述文件了,可以通過(guò)WebLogic?Builder工具中的View-->XML?Source進(jìn)行查看。
?
恭喜你,對(duì)WebLogic?Builder這個(gè)工具的使用入門了,至于該工具的其它的一些使用功能比如BEAN屬性配置、server部署什么的,就請(qǐng)大家自己研究吧!^Q^
?
原文地址:
http://dev2dev.bea.com.cn/bbs/threa ... =81&threadID=2683
?
WebLogic部署應(yīng)用的方式簡(jiǎn)明列表
1、WebLogic中應(yīng)用可分三種,分別對(duì)應(yīng)不同的描述文件及擴(kuò)展名或目錄結(jié)構(gòu):
(1)*.JAR:?是EJB的壓縮包(有3個(gè)描述文件ejb-jar.xml,WEBLOGIC*.0-ejb-jar.xml,WEBLOGIC*.0-cmp-rdbms-jar.xml)
(2)*.WAR:?是只包含JSP和SERVLET的WEB?APPLICATION壓縮包(有2個(gè)描述文件web.xml,weblogic.xml)
(3)*.EAR:?是包含EJB和WEB?APPLICATION?的J2EE?Enterprise?Application壓縮包(有1?個(gè)描述文件,application.xml)
注意:它們不能混用,如WEB?APPLICATOIN不能打包成.EAR文件。
?
2、WebLogic的應(yīng)用用兩種發(fā)布方式:
(1)以目錄形式存放在WEBLOGIC的APPLICATIONS目錄下,適用于開(kāi)發(fā)階段
(2)以一個(gè)壓縮包形式存放在WEBLOGIC的APPLICATIONS目錄下,適用于運(yùn)行階段,可用JAR?打包,如D:\test?>jar?cf?testwar.war?*
把TEST目錄下的所有文件打包成一個(gè)testwar.war文件。
?
3、WebLogic應(yīng)用的布置方式有2種
(1)靜態(tài)布置:即把應(yīng)用在CONFIG.XML中登記,可通過(guò)WEBLOGIC的控制臺(tái)進(jìn)行添加,WEBLOGIC會(huì)自動(dòng)把該應(yīng)用對(duì)應(yīng)的壓縮包拷到APPLICAITONS目錄下,如果對(duì)該應(yīng)用修改,需要重新布置才行。
(2)動(dòng)態(tài)布置:沒(méi)有在config.xml中登記,可直接把壓縮包或目錄拷到APPLICATIONS目錄下,WebLogic會(huì)自動(dòng)檢測(cè)到.?WebLogic每次啟動(dòng)時(shí)會(huì)自動(dòng)對(duì)APPLICATIONS目錄下沒(méi)有進(jìn)行靜態(tài)布置的應(yīng)用,進(jìn)行動(dòng)態(tài)布置。
?
4、一個(gè)例子:
如果一個(gè)應(yīng)用中有EJB,JSP,SERVLET,其布置步驟如下:
(1)生成EJB的JAR文件,最好一個(gè)JAR文件對(duì)應(yīng)一個(gè)EJB
(2)生成WEB?APPLICATION的WAR文件,在web.xml,weblogic.xml中登記,配置SERVLET,JSP等。
(3)創(chuàng)建一個(gè)application.xml文件,設(shè)置該應(yīng)用的屬性.把a(bǔ)pplication.xml,*.JAR,?*.WAR,打包成一個(gè)*.EAR
(4)WebLogic的控制臺(tái)中登記該應(yīng)用或把該EAR文件拷到application目錄下。到此處就完成了部署。
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID= ... 6&tstart=25&quint=true
?
WebLogic如何設(shè)置session超時(shí)時(shí)間
1?web.xml
設(shè)置WEB應(yīng)用程序描述符web.xml里的<session-timeout>元素。這個(gè)值以分鐘為
單位,并覆蓋weblogic.xml中的TimeoutSecs屬性
??<session-config>
????<session-timeout>54</session-timeout>
??</session-config>
此例表示Session將在54分鐘后過(guò)期
當(dāng)<session-timeout>設(shè)置為-2,表示將使用在weblogic.xml中設(shè)置的
TimeoutSecs這個(gè)屬性值。
當(dāng)<session-timeout>設(shè)置為-1,表示Session將永不過(guò)期,而忽略在
weblogic.xml中設(shè)置的TimeoutSecs屬性值。
該屬性值可以通過(guò)console控制臺(tái)來(lái)設(shè)置
2?weblogic.xml
設(shè)置WebLogic特有部署描述符weblogic.xml的<session-descriptor>元素的
TimeoutSecs屬性。這個(gè)值以秒為單位
<session-descriptor>
???<session-param>
??????<param-name>TimeoutSecs</param-name>
??????<param-value>3600</param-value>
???</session-param>
</session-descriptor>
默認(rèn)值是3600秒
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID= ... 2&tstart=25&quint=true
監(jiān)控調(diào)優(yōu)?理解JVM的垃圾收集機(jī)制
簡(jiǎn)述
GC即垃圾收集機(jī)制是指JVM用于釋放那些不再使用的對(duì)象所占用的內(nèi)存。java語(yǔ)言并不要求JVM有GC,也沒(méi)有規(guī)定GC如何工作。不過(guò)常用的JVM都有GC,而且大多數(shù)GC都使用類似的算法管理內(nèi)存和執(zhí)行收集操作。
?
在充分理解了垃圾收集算法和執(zhí)行過(guò)程后,才能有效的優(yōu)化它的性能。有些垃圾收集專用于特殊的應(yīng)用程序。比如,實(shí)時(shí)應(yīng)用程序主要是為了避免垃圾收集中斷,而大多數(shù)OLTP應(yīng)用程序則注重整體效率。理解了應(yīng)用程序的工作負(fù)荷和JVM支持的垃圾收集算法,便可以進(jìn)行優(yōu)化配置垃圾收集器。
?
垃圾收集的目的在于清除不再使用的對(duì)象。GC通過(guò)確定對(duì)象是否被活動(dòng)對(duì)象引用來(lái)確定是否收集該對(duì)象。GC首先要判斷該對(duì)象時(shí)候可以收集。兩種常用的方法是引用計(jì)數(shù)和對(duì)象引用遍歷。引用計(jì)數(shù)存儲(chǔ)對(duì)特定對(duì)象的所有引用數(shù),也就是說(shuō),當(dāng)應(yīng)用程序創(chuàng)建引用以及引用超出范圍時(shí),JVM必須適當(dāng)增減引用數(shù)。當(dāng)某對(duì)象的引用數(shù)為0時(shí),便可以進(jìn)行垃圾收集。
?
早期的JVM使用引用計(jì)數(shù),現(xiàn)在大多數(shù)JVM采用對(duì)象引用遍歷。對(duì)象引用遍歷從一組對(duì)象開(kāi)始,沿著整個(gè)對(duì)象圖上的每條鏈接,遞歸確定可到達(dá)(reachable)的對(duì)象。如果某對(duì)象不能從這些根對(duì)象的一個(gè)(至少一個(gè))到達(dá),則將它作為垃圾收集。在對(duì)象遍歷階段,GC必須記住哪些對(duì)象可以到達(dá),以便刪除不可到達(dá)的對(duì)象,這稱為標(biāo)記(marking)對(duì)象。
?
下一步,GC要?jiǎng)h除不可到達(dá)的對(duì)象。刪除時(shí),有些GC只是簡(jiǎn)單的掃描堆棧,刪除未標(biāo)記的對(duì)象,并釋放它們的內(nèi)存以生成新的對(duì)象,這叫做清除(sweeping)。這種方法的問(wèn)題在于內(nèi)存會(huì)分成好多小段,而它們不足以用于新的對(duì)象,但是組合起來(lái)卻很大。因此,許多GC可以重新組織內(nèi)存中的對(duì)象,并進(jìn)行壓縮(compact),形成可利用的空間。
?
為此,GC需要停止其他的活動(dòng)活動(dòng)。這種方法意味著所有與應(yīng)用程序相關(guān)的工作停止,只有GC運(yùn)行。結(jié)果,在響應(yīng)期間增減了許多混雜請(qǐng)求。另外,更復(fù)雜的GC不斷增加或同時(shí)運(yùn)行以減少或者清除應(yīng)用程序的中斷。有的GC使用單線程完成這項(xiàng)工作,有的則采用多線程以增加效率。
?
下面列舉一些JVM使用的GC
標(biāo)記-清除收集器:這種收集器首先遍歷對(duì)象圖并標(biāo)記可到達(dá)的對(duì)象,然后掃描堆棧以尋找未標(biāo)記對(duì)象并釋放它們的內(nèi)存。這種收集器一般使用單線程工作并停止其他操作。
標(biāo)記-壓縮收集器:有時(shí)也叫標(biāo)記-清除-壓縮收集器,與標(biāo)記-清除收集器有相同的標(biāo)記階段。在第二階段,則把標(biāo)記對(duì)象復(fù)制到堆棧的新域中以便壓縮堆棧。這種收集器也停止其他操作。
復(fù)制收集器這種收集器將堆棧分為兩個(gè)域,常稱為半空間。每次僅使用一半的空間,JVM生成的新對(duì)象則放在另一半空間中。GC運(yùn)行時(shí),它把可到達(dá)對(duì)象復(fù)制到另一半空間,從而壓縮了堆棧。這種方法適用于短生存期的對(duì)象,持續(xù)復(fù)制長(zhǎng)生存期的對(duì)象則導(dǎo)致效率降低。
增量收集器增量收集器把堆棧分為多個(gè)域,每次僅從一個(gè)域收集垃圾。這會(huì)造成較小的應(yīng)用程序中斷。有多種方法可以定義實(shí)際的GC。
分代收集器??這種收集器把堆棧分為兩個(gè)或多個(gè)域,用以存放不同壽命的對(duì)象。JVM生成的新對(duì)象一般放在其中的某個(gè)域中。過(guò)一段時(shí)間,繼續(xù)存在的對(duì)象將獲得使用期并轉(zhuǎn)入更長(zhǎng)壽命的域中。分代收集器對(duì)不同的域使用不同的算法以優(yōu)化性能。
并發(fā)收集器??并發(fā)收集器與應(yīng)用程序同時(shí)運(yùn)行。這些收集器在某點(diǎn)上一般都不得不停止其他操作以完成特定的任務(wù),但是因?yàn)槠渌麘?yīng)用程序可進(jìn)行其他的后臺(tái)操作,所以中斷其他處理的實(shí)際時(shí)間大大降低。
并行收集器??并行收集器使用某種傳統(tǒng)的算法并使用多線程并行的執(zhí)行它們的工作。在多cpu機(jī)器上使用多線程技術(shù)可以顯著的提高java應(yīng)用程序的可擴(kuò)展性。
Sun?Hotspot?1.4.1?JVM堆大小的調(diào)整
Sun?Hotspot?1.4.1使用分代收集器,它把堆分為三個(gè)主要的域:新域、舊域以及永久域。JVM生成的所有新對(duì)象放在新域中。一旦對(duì)象經(jīng)歷了一定數(shù)量的垃圾收集循環(huán)后,便獲得使用期并進(jìn)入舊域。在永久域中JVM則存儲(chǔ)class和method對(duì)象。就配置而言,永久域是一個(gè)獨(dú)立域并且不認(rèn)為是堆的一部分。下面介紹如何控制這些域的大小。
可使用-Xms和-Xmx控制整個(gè)堆的原始大小或最大值。比如,下面的命令是把初始大小設(shè)置為128M:
?java?–Xms128m?–Xmx256m
為控制新域的大小,可使用-XX:NewRatio設(shè)置新域在堆中所占的比例。比如下面的命令把整個(gè)堆設(shè)置成128m,新域比率設(shè)置成3,即新域與舊域比例為1:3,新域?yàn)槎训?/4或32M:
java?–Xms128m?–Xmx128m?–XX:NewRatio?=3
可使用-XX:NewSize和-XX:MaxNewsize設(shè)置新域的初始值和最大值。比如,下面的命令把新域的初始值和最大值設(shè)置成64m:
?java?–Xms256m?–Xmx256m?–Xmn64m
一般不把永久域當(dāng)作堆的一部分。永久域默認(rèn)大小為4m。運(yùn)行程序時(shí),JVM會(huì)調(diào)整永久域的大小以滿足需要。每次調(diào)整時(shí),JVM會(huì)對(duì)堆進(jìn)行一次完全的垃圾收集。使用-XX:MaxPerSize標(biāo)志來(lái)增加永久域搭大小。在WebLogic?Server應(yīng)用程序加載較多類時(shí),經(jīng)常需要增加永久域的最大值。當(dāng)JVM加載類時(shí),永久域中的對(duì)象急劇增加,從而使JVM不斷調(diào)整永久域大小。為了避免調(diào)整,可使用-XX:PerSize標(biāo)志設(shè)置初始值。比如,下面把永久域初始值設(shè)置成32m,最大值設(shè)置成64m。
java?–Xms512m?–Xmx512m?–Xmn128m?–XX:PermSize=32m?–XX:MaxPermSize=64m
默認(rèn)狀態(tài)下,HotSpot在新域中使用復(fù)制收集器。該域一般分為三個(gè)部分。第一部分為Eden,用于生成新的對(duì)象。另兩部分稱為救助空間,當(dāng)?Eden充滿時(shí),收集器停止應(yīng)用程序,把所有可到達(dá)對(duì)象復(fù)制到當(dāng)前的from救助空間,一旦當(dāng)前的from救助空間充滿,收集器則把可到達(dá)對(duì)象復(fù)制到當(dāng)前的to救助空間。From和to救助空間互換角色。維持活動(dòng)的對(duì)象將在救助空間不斷復(fù)制,直到它們獲得使用期并轉(zhuǎn)入舊域。
使用-XX:SurvivorRatio可控制新域子空間的大小。同NewRation一樣,SurvivorRation規(guī)定某救助域與Eden空間的比值。比如,以下命令把新域設(shè)置成64m,Eden占32m,每個(gè)救助域各占16m:
java?–Xms256m?–Xmx256m?–Xmn64m?–XX:SurvivorRation=2
如前所述,默認(rèn)狀態(tài)下HotSpot對(duì)新域使用復(fù)制收集器,對(duì)舊域使用標(biāo)記-清除-壓縮收集器。在新域中使用復(fù)制收集器有很多意義,因?yàn)閼?yīng)用程序生成的大部分對(duì)象是短壽命的。理想狀態(tài)下,所有過(guò)渡對(duì)象在移出Eden空間時(shí)將被收集。如果能夠這樣的話,并且移出Eden空間的對(duì)象是長(zhǎng)壽命的,那么理論上可以立即把它們移進(jìn)舊域,避免在救助空間反復(fù)復(fù)制。
但是,應(yīng)用程序不能適合這種理想狀態(tài),因?yàn)樗鼈冇幸恍〔糠种虚L(zhǎng)壽命的對(duì)象。最好是保持這些中長(zhǎng)壽命的對(duì)象并放在新域中,因?yàn)閺?fù)制小部分的對(duì)象總比壓縮舊域廉價(jià)。
為控制新域中對(duì)象的復(fù)制,可用-XX:TargetSurvivorRatio控制救助空間的比例。該值是一個(gè)百分比,默認(rèn)值是50。當(dāng)較大的堆棧使用較低的sruvivorratio時(shí),應(yīng)增加該值到80至90,以更好利用救助空間。
用-XX:maxtenuring?threshold可控制上限。為放置所有的復(fù)制全部發(fā)生以及希望對(duì)象從eden擴(kuò)展到舊域,可以把MaxTenuring?Threshold設(shè)置成0。設(shè)置完成后,實(shí)際上就不再使用救助空間了,因此應(yīng)把SurvivorRatio設(shè)成最大值以最大化Eden空間,設(shè)置如下:
java?…?-XX:MaxTenuringThreshold=0?–XX:SurvivorRatio=5000
?
從JVM中獲取信息以助于調(diào)整方案
-verbose.gc開(kāi)關(guān)可顯示GC的操作內(nèi)容。打開(kāi)它,可以顯示最忙和最空閑收集行為發(fā)生的時(shí)間、收集前后的內(nèi)存大小、收集需要的時(shí)間等。
打開(kāi)-xx:+?printgcdetails開(kāi)關(guān),可以詳細(xì)了解GC中的變化。
打開(kāi)-XX:?+?PrintGCTimeStamps開(kāi)關(guān),可以了解這些垃圾收集發(fā)生的時(shí)間,自JVM啟動(dòng)以后以秒計(jì)量。
最后,通過(guò)-xx:?+?PrintHeapAtGC開(kāi)關(guān)了解堆的更詳細(xì)的信息。
為了了解新域的情況,可以通過(guò)-XX:=PrintTenuringDistribution開(kāi)關(guān)了解獲得使用期的對(duì)象權(quán)。
BEA?JRockit?JVM的使用
Bea?WebLogic?8.1使用的新的JVM用于Intel平臺(tái)。在Bea安裝完畢的目錄下可以看到有一個(gè)類似于jrockit81sp1_141_03的文件夾。這就是Bea新JVM所在目錄。
不同于HotSpot把Java字節(jié)碼編譯成本地碼,它預(yù)先編譯成類。JRockit還提供了更細(xì)致的功能用以觀察JVM的運(yùn)行狀態(tài),主要是獨(dú)立的GUI控制臺(tái)或者WebLogic?Server控制臺(tái)。Bea?JRockit?JVM支持4種垃圾收集器:
分代復(fù)制收集器:它與默認(rèn)的分代收集器工作策略類似。對(duì)象在新域中分配,即JRockit文檔中的nursery。這種收集器最適合單CPU機(jī)上小型堆操作。
單空間并發(fā)收集器:該收集器使用完整堆,并與背景線程共同工作。盡管這種收集器可以消除中斷,但是收集器需花費(fèi)較長(zhǎng)的時(shí)間尋找死對(duì)象,而且處理應(yīng)用程序時(shí)收集器經(jīng)常運(yùn)行。如果處理器不能應(yīng)付應(yīng)用程序產(chǎn)生的垃圾,它會(huì)中斷應(yīng)用程序并關(guān)閉收集。
分代并發(fā)收集器:這種收集器在護(hù)理域使用排它復(fù)制收集器,在舊域中則使用并發(fā)收集器。由于它比單空間共同發(fā)生收集器中斷頻繁,因此它需要較少的內(nèi)存,應(yīng)用程序的運(yùn)行效率也較高,注意,過(guò)小的護(hù)理域可以導(dǎo)致大量的臨時(shí)對(duì)象被擴(kuò)展到舊域中。這會(huì)造成收集器超負(fù)荷運(yùn)作,甚至采用排它性工作方式完成收集。
并行收集器:該收集器也停止其他進(jìn)程的工作,但使用多線程以加速收集進(jìn)程。盡管它比其他的收集器易于引起長(zhǎng)時(shí)間的中斷,但一般能更好的利用內(nèi)存,程序效率也較高。
默認(rèn)狀態(tài)下,JRockit使用分代并發(fā)收集器。要改變收集器,可使用-Xgc:<gc_name>,對(duì)應(yīng)四個(gè)收集器分別為gencopy,?singlecon,gencon以及parallel。可使用-Xms和-Xmx設(shè)置堆的初始大小和最大值。要設(shè)置護(hù)理域,則使用-Xns:
java?–jrockit?–Xms512m?–Xmx512m?–Xgc:gencon?–Xns128m…
盡管JRockit支持-verbose:gc開(kāi)關(guān),但它輸出的信息會(huì)因收集器的不同而異。JRockit還支持memory、load和codegen的輸出。
?
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa? ... hreadID=19031&tstart=0
?
WebLogic?Server?Hang產(chǎn)生的一般原因
系統(tǒng)內(nèi)存不足
????*?系統(tǒng)CPU忙,系統(tǒng)文件描述符數(shù)目不足,線程死鎖,JVM有GC方面的bug,對(duì)于一些特定的情況可以使用truss命令跟蹤系統(tǒng)調(diào)用來(lái)進(jìn)行分析。可以打開(kāi)JVM的gc?log,在java命令行上加上-verbose:gc,GC的log輸出在java進(jìn)程的標(biāo)準(zhǔn)輸出里,在hp的JVM上,可以通過(guò)在java命令行上加?-Xverbosegc:file=gcfilename來(lái)將gc?log寫(xiě)到指定的文件其輸出類似:[GC?15639K->13700K(65280K),?0.0068439?secs]。解決辦法是調(diào)整JVM的內(nèi)存設(shè)置和gc算法,升級(jí)jvm或是os?patch。
????*?出現(xiàn)?OutOfMemoryError或是觀察到內(nèi)存吃緊,操作系統(tǒng)本身的剩余內(nèi)存,通過(guò)top或是vmstat觀察,操作系統(tǒng)的swap區(qū),Swap區(qū)太小可能導(dǎo)致編譯jsp時(shí)報(bào)“Not?enough?space”的錯(cuò),操作系統(tǒng)kernel參數(shù)中maxsize的大小,如果觀測(cè)到數(shù)據(jù)庫(kù)連接池里的連接泄漏,極可能是內(nèi)存泄漏的先兆
????*?JVM?的heap區(qū)大小,通過(guò)java命令行中的-Xms,-Xmx指定,建議最小值和最大值設(shè)成一樣,可以通過(guò)WebLogic?console上server/monitor/performance來(lái)觀察其使用情況,建議生產(chǎn)系統(tǒng)最256M,一般情況下可以設(shè)置為系統(tǒng)剩余物理內(nèi)存的80%,Heap?size太大在一些JVM上會(huì)有問(wèn)題,對(duì)于sun和hp的JVM,permanent?size太小也會(huì)出OutOfMemoryError,在java命令行上加-XX:MaxPermSize=128m
????*?盡量減少內(nèi)存消耗,Session中不要放大的數(shù)據(jù),并盡量在不再需要的時(shí)候remove掉,如果可以調(diào)整session?timeout到較小的值,避免在J2EE?server端應(yīng)用里邊調(diào)用AWT/swing作圖,調(diào)整ejb的cache/pool設(shè)置
????*?內(nèi)存泄漏,可以通過(guò)WebLogic?console來(lái)觀察JVM的heap?memory使用情況來(lái)獲知是否有內(nèi)存泄漏情況,采用第三方輔助工具來(lái)獲取更詳細(xì)信息,如Jprobe/OptimizeIt;有可能是weblogic?的bug,但絕大部分情況是由用戶的應(yīng)用引起的,最常見(jiàn)的代碼問(wèn)題是數(shù)據(jù)庫(kù)連接沒(méi)正常關(guān)閉。
?
系統(tǒng)CPU忙
????*?如果用戶訪問(wèn)量很大,CPU占用很高(user態(tài))并不是異常
????*?如果是kernel態(tài)很多,需要OS廠商調(diào)整操作系統(tǒng)
????*?采用top找到占用CPU很多的進(jìn)程,如果是非weblogic進(jìn)程,應(yīng)該考慮將其移到另外的server上運(yùn)行,如果是運(yùn)行weblogic的java進(jìn)程,通過(guò)做thread?dump(詳細(xì)信息后邊會(huì)介紹到)來(lái)確認(rèn)是那段代碼導(dǎo)致了這么高的CPU使用(也有可能是os/jvm本身不正常)
系統(tǒng)文件描述符數(shù)目不足
Log中有“too?many?open?files”的錯(cuò)誤,表示達(dá)到了系統(tǒng)對(duì)一個(gè)進(jìn)程能同時(shí)打開(kāi)的文件數(shù)的限制:
????*?ulimit?–a?–H?可以查看當(dāng)前限制
????*?ulimit?–n?number可以來(lái)更改當(dāng)前環(huán)境的設(shè)置,建議至少設(shè)到4096
????*?Solaris上可以通過(guò)/usr/proc/bin/pfiles?pid來(lái)查看指定進(jìn)程的限制和當(dāng)前使用的file?descriptor數(shù)目
????*?Solaris上root用戶可以通過(guò)/usr/proc/bin/plimit?-n?soft,hard?pid?來(lái)動(dòng)態(tài)更改進(jìn)程的文件描述符的限制
線程死鎖
對(duì)于原因不明的hang或是響應(yīng)慢,最根本的方法就是獲取thread?dump信息,對(duì)于windows系統(tǒng),在運(yùn)行java的窗口按Ctrl+Break,對(duì)于UNIX系統(tǒng),首先用ps找到運(yùn)行weblogic的java?進(jìn)程的pid,然后執(zhí)行kill?–3?pid,JVM將負(fù)責(zé)將所有java進(jìn)程的狀態(tài)、執(zhí)行堆棧dump到其標(biāo)準(zhǔn)輸出,為了方便獲取thread?dump信息,在weblogic啟動(dòng)的時(shí)候,最好將其標(biāo)準(zhǔn)輸出重定向到一個(gè)文件,為了反映線程狀態(tài)的動(dòng)態(tài)變化,需要接連多次做thread?dump,每次間隔10-20s。
?
對(duì)于thread?dump信息,主要關(guān)注的是線程的狀態(tài)和其執(zhí)行堆棧,線程的狀態(tài)一般為三類
????*?Runnable(R):當(dāng)前可以運(yùn)行的線程
????*?Waiting?on?monitor(CW):線程主動(dòng)wait
????*?Waiting?for?monitor?entry(MW):線程等鎖
一般關(guān)注的都是第一和第三種狀態(tài)的線程
CPU很忙則關(guān)注runnable的線程
CPU閑則關(guān)注waiting?for?monitor?entry的線程
一種典型的死鎖是由于在server端應(yīng)用(比如servlet)中請(qǐng)求由同一weblogic實(shí)例serve的資源,解決辦法就是將該servlet放到另外的執(zhí)行隊(duì)列里去執(zhí)行。
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID ... 5&tstart=0&quint=true
?
"指定的網(wǎng)絡(luò)名不再可用"錯(cuò)誤
wl6.1和wl7.0部署應(yīng)用后都在后臺(tái)拋出“java.net.SocketException:?ReadFile?failed:?指定的網(wǎng)絡(luò)名不再可用”,這不是一個(gè)致命的錯(cuò)誤,只會(huì)在中文Window上。如Hilaser和linstone提出了辦法:
?
????*?如果你是自己隨便玩玩,將你的JDK升級(jí)到j(luò)dk1.3.1_06
????*?用wls6.1?sp4,到如下位置下載
??????http://commerce.bea.com/SoftwareProductDetailWLS?SWName=WebLogic+Server+Evaluation ... .1+SP4&SWPlatform=Microsoft+Windows+NT%2F2000
????*?運(yùn)行cmd,打開(kāi)窗口菜單(點(diǎn)擊左上角窗口圖標(biāo)),選擇默認(rèn)值,將默認(rèn)代碼頁(yè)改為437。
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa? ... hreadID=9393&tstart=0
?
?
集群配置?集群簡(jiǎn)明配置過(guò)程
在wls7中,集群的受管服務(wù)器無(wú)需使用相同的端口,這使在一個(gè)主機(jī)上實(shí)現(xiàn)集群成為可能。下面的例子是在一個(gè)主機(jī)(172.30.94.60)上的?wls7里創(chuàng)建一個(gè)集群(mycluster)DEMO,包括管理服務(wù)器(myserver:7001)、集群(兩個(gè)受管服務(wù)器serverA:?8001、serverB:8003)、代理服務(wù)器(ProxyServer:80)。應(yīng)用WebApp是部署在集群上的web應(yīng)用,而?DefaultWebApp是部署在代理服務(wù)器上用來(lái)代理集群應(yīng)用WebApp的。具體步驟如下:
?
1.創(chuàng)建集群域clusterdomainnew,管理服務(wù)器myserver(7001:7003);
2.創(chuàng)建Machine:admin(myserver,ProxyServer),cluster(serverA,serverB);
3.創(chuàng)建受管服務(wù)器serverA(8001),serverB(8003);
4.創(chuàng)建集群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應(yīng)用,targets?mucluster;
6.創(chuàng)建代理服務(wù)器ProxyServer(80),將DefaultWebApptargets?ProxyServer;
7.編輯DefaultWebApp應(yīng)用,注冊(cè)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.啟動(dòng)serverA:startManagedWeblogicserverAhttp://172.30.94.60:7001;
啟動(dòng)成功后,訪問(wèn)http://172.30.94.60:8001/WebApp/?驗(yàn)證一下!
10.啟動(dòng)serverB:startManagedWeblogicserverBhttp://172.30.94.60:7001;
啟動(dòng)成功后,訪問(wèn)http://172.30.94.60:8003/WebApp/?驗(yàn)證一下!
11.?啟動(dòng)ProxyServer:startManagedWeblogic?ProxyServerhttp://172.30.94.60:7001。
訪問(wèn)http://172.30.94.60/WebApp,是不是大功告成了:)
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID= ... 7&tstart=25&quint=true
?
WebLogic應(yīng)用在集群環(huán)境下的一些基本知識(shí)
基本概念
1.硬件的cluster和WebLogic的cluster不是一回事,硬件做的是冷備份,對(duì)用戶的session,用戶請(qǐng)求的負(fù)載均衡等的處理是做不到的,而且一般硬件的雙機(jī)熱備也不是時(shí)時(shí)的備份,而是間隔一段時(shí)間再將主機(jī)上的數(shù)據(jù)copy過(guò)來(lái),而WebLogic?Server的cluster就不是這樣,其session的數(shù)據(jù)是時(shí)時(shí)的復(fù)制的,對(duì)不經(jīng)常更改的jndi等的復(fù)制雖然也是定期完成的,但update的時(shí)間間隔很短
2.WebLogic?Server的cluster配置非常方便,請(qǐng)參考dev2dev學(xué)堂
http://dev2dev.bea.com.cn/techdoc/200506554.html
如果你要對(duì)集群做擴(kuò)展,操作也非常方便,你只需要啟動(dòng)一個(gè)指向這個(gè)集群的Admin?Server的managed?server就可以了,由這個(gè)集群中的唯一的Admin?Server往這個(gè)managed?server上部署應(yīng)用
3.http狀態(tài)會(huì)話復(fù)制就是session的復(fù)制,例如你登陸了系統(tǒng),如果一個(gè)服務(wù)器壞了,cluster會(huì)將你的請(qǐng)求轉(zhuǎn)發(fā)集群中的另外一個(gè)server,由其繼續(xù)處理你的這個(gè)請(qǐng)求,而不要重新登陸。
4.EJB集群中有狀態(tài),無(wú)狀態(tài)EJB的意義和區(qū)別請(qǐng)看J2EE中EJB的相關(guān)知識(shí)
5.對(duì)EJB的集群,也是非常簡(jiǎn)單的,直接把EJB應(yīng)用target到cluster的server上!
6.對(duì)WebLogic?Server來(lái)說(shuō),它的cluster做session的in?memory的時(shí)時(shí)復(fù)制,這適用于web?application及stateful?session?BEA的session內(nèi)容的復(fù)制
7.對(duì)非stateful的EJB,WebLogic?Server的cluster做其負(fù)載均衡及failover的工作(failover只針對(duì)EJB的stateless?BEAN
集群規(guī)劃
在規(guī)劃集群配置時(shí),應(yīng)該牢記以下關(guān)于網(wǎng)絡(luò)環(huán)境與集群配置的限制。
?
1.首先,集群中的WebLogic主機(jī)必須使用永久的靜態(tài)IP地址。動(dòng)態(tài)IP地址分配不能用于集群環(huán)境。如果服務(wù)器位于防火墻后面,而客戶機(jī)位于防火墻外面,那么服務(wù)器必須有公共的靜態(tài)IP地址,只有這樣,客戶端才能訪問(wèn)服務(wù)器。
2.集群中的所有WebLogic服務(wù)器必須位于同一個(gè)局域網(wǎng),并且必須是IP廣播可到達(dá)的。
3.集群中的所有WebLogic服務(wù)器必須使用相同的版本。配置集群中的服務(wù)器,使它們支持所提供的服務(wù)。對(duì)于使用了JDBC連接的EJB,所有部署了某EJB的服務(wù)器必須具有相同的部署與持久化配置。也就是說(shuō)所有服務(wù)器都應(yīng)該有相同的JDBC配置。所有部署了servlet的主機(jī)必須維護(hù)一組具有相同?ACL的servlet。
如果客戶端應(yīng)用直接使用JDBC連接池,那么你必須為每個(gè)WebLogic服務(wù)器創(chuàng)建相同的連接池(并具有相同的ACL)。這意味著集群所使用的連接池應(yīng)該可以在所有的機(jī)器上創(chuàng)建。例如,一臺(tái)運(yùn)行WebLogic的NT服務(wù)器配置了連接Microsoft?SQL?Server數(shù)據(jù)庫(kù)的連接池,那么一個(gè)包含非Windows機(jī)器(即不支持Microsoft?SQL?Server連接的機(jī)器)的集群不能使用這個(gè)連接池。
其它配置細(xì)節(jié)可能會(huì)因不同的集群成員而不同。例如,一臺(tái)Solaris服務(wù)器可以比一臺(tái)小的?NT工作站處理更多的登錄請(qǐng)求。這種差異是可以接受的。因此,正如這里所給出的例子,對(duì)于那些與性能相關(guān)的屬性,你可以根據(jù)每個(gè)集群成員的特點(diǎn)來(lái)配置不同的值,只要所有成員的服務(wù)配置相同即可。因此,集群中的WebLogic服務(wù)器在所有與WebLogic服務(wù)、類文件以及外部資源(例如數(shù)據(jù)庫(kù))相關(guān)的方面具有相同的配置。
?
服務(wù)器配置任務(wù)列表
可以通過(guò)管理控制臺(tái)進(jìn)行以下服務(wù)器配置:
????*?Server節(jié)點(diǎn)配置單獨(dú)的服務(wù)器可以配置的屬性包括名字:監(jiān)聽(tīng)端口與IP地址。
????*?Server節(jié)點(diǎn)克隆一個(gè)服務(wù)器:克隆的服務(wù)器保存了原來(lái)服務(wù)器的屬性值,你可以使用Server節(jié)點(diǎn)中的Configuration配置新服務(wù)器的名字。
????*?使用管理控制臺(tái)的Server節(jié)點(diǎn)來(lái)刪除一個(gè)服務(wù)器:點(diǎn)擊要?jiǎng)h除的服務(wù)器的圖標(biāo),將彈出一個(gè)刪除服務(wù)器的確認(rèn)對(duì)話框,點(diǎn)擊對(duì)話框中的Yes按鈕將刪除服務(wù)器。
????*?使用管理控制臺(tái)的Server節(jié)點(diǎn)查看一個(gè)服務(wù)器的日志:點(diǎn)擊要查看的服務(wù)器,點(diǎn)擊Monitoring標(biāo)簽頁(yè),點(diǎn)擊View?Server?Log連結(jié),便可以在管理控制臺(tái)的右窗格查看服務(wù)器日志。
????*?使用管理控制臺(tái)的Server節(jié)點(diǎn)查看一個(gè)服務(wù)器的JNDI樹(shù):點(diǎn)擊所要查看的服務(wù)器,然后點(diǎn)擊Monitoring標(biāo)簽頁(yè),點(diǎn)擊該頁(yè)面上View?JNDI?Tree連接,該服務(wù)器JNDI樹(shù)的信息便顯示在管理控制臺(tái)的右窗格中。
????*?使用管理控制臺(tái)的Server節(jié)點(diǎn)查看服務(wù)器的執(zhí)行隊(duì)列:點(diǎn)擊所要查看的服務(wù)器,然后點(diǎn)擊Execute?Queue?鏈接,然后查看管理控制臺(tái)右邊窗格里的表格中的內(nèi)容。
????*?使用管理控制臺(tái)的Server節(jié)點(diǎn)查看服務(wù)器的執(zhí)行線程:點(diǎn)擊所要查看的服務(wù)器,然后點(diǎn)擊Execute?Queue?鏈接,然后查看管理控制臺(tái)右邊窗格里的表格中的內(nèi)容:
????*?使用管理控制臺(tái)的Server節(jié)點(diǎn)查看server?sockets:點(diǎn)擊所要查看的服務(wù)器,點(diǎn)擊View?Sockets連接,然后查看管理控制臺(tái)右邊窗格里的表格中的內(nèi)容。
????*?使用管理控制臺(tái)的Server節(jié)點(diǎn)查看服務(wù)器連接:點(diǎn)擊所要查看的服務(wù)器,點(diǎn)擊View?Connections連接,然后查看管理控制臺(tái)右邊窗格里的表格中的內(nèi)容。
????*?使用管理控制臺(tái)的Server節(jié)點(diǎn)進(jìn)行強(qiáng)制垃圾收集,點(diǎn)擊要監(jiān)控的服務(wù)器,點(diǎn)擊JVM標(biāo)簽頁(yè),點(diǎn)擊頁(yè)面上的Force?Garbage?Collection連接,將彈出是否要進(jìn)行垃圾收集的確認(rèn)對(duì)話框。
????*?Server節(jié)點(diǎn)監(jiān)視服務(wù)器的安全:點(diǎn)擊要監(jiān)控的服務(wù)器,點(diǎn)擊Monitoring標(biāo)簽頁(yè),點(diǎn)擊Security標(biāo)簽頁(yè),將顯示安全信息。
????*?Server節(jié)點(diǎn)查看服務(wù)器的版本:點(diǎn)擊要查看的服務(wù)器,點(diǎn)擊Version標(biāo)簽頁(yè),將顯示服務(wù)器的版本信息。
????*?Server節(jié)點(diǎn)監(jiān)控服務(wù)器集群:點(diǎn)擊要監(jiān)控的服務(wù)器,點(diǎn)擊Cluster標(biāo)簽頁(yè),將顯示該服務(wù)器的集群數(shù)據(jù)。
????*?Server節(jié)點(diǎn)來(lái)部署EJB:點(diǎn)擊需要部署EJB的服務(wù)器,點(diǎn)擊需要分發(fā)的EJB并使用移動(dòng)控件將它移到被選列中,點(diǎn)擊Apply來(lái)保存你的選擇。
????*?Server節(jié)點(diǎn)來(lái)監(jiān)視部署在某一服務(wù)器上的所有EJB:點(diǎn)擊需要監(jiān)視的服務(wù)器,點(diǎn)擊Monitor?All?EJB?Deployments連接來(lái)顯示EJB的部署列表。
????*?Server節(jié)點(diǎn)將web應(yīng)用組件部署在某一服務(wù)器上:選擇要部署web應(yīng)用的服務(wù)器:選擇需要部署的web應(yīng)用,然后通過(guò)移動(dòng)控件將它移到被選列中,點(diǎn)擊Apply來(lái)保存你的選擇。
????*?Server節(jié)點(diǎn)來(lái)監(jiān)控某一服務(wù)器上的所有web應(yīng)用組件:點(diǎn)擊web應(yīng)用所在的服務(wù)器,然后點(diǎn)擊Monitor?All?Web?Applications連接來(lái)顯示W(wǎng)eb?Application?的部署列表。
????*?Server節(jié)點(diǎn)在服務(wù)器上部署啟動(dòng)與終止類:點(diǎn)擊需要部署啟動(dòng)類的服務(wù)器,然后點(diǎn)擊需要部署的啟動(dòng)類并將它移到被選列中,點(diǎn)擊Apply來(lái)保存你的選擇,使用終止類控件來(lái)部署終止類的過(guò)程與此相同。
????*?Server節(jié)點(diǎn)為服務(wù)器分配JDBC連接池:點(diǎn)擊web?server分配表中的一個(gè)服務(wù)器,在Available列中點(diǎn)擊一到多個(gè)JDBC連接池,并通過(guò)移動(dòng)控件將所選擇的JDBC連接池移到Chosen列,點(diǎn)擊Apply來(lái)保存你所做的分配。
????*?Server節(jié)點(diǎn)為一個(gè)服務(wù)器分配WLEC連接池:點(diǎn)擊需要分配WLEC連接池的服務(wù)器:在Available列中選擇一個(gè)或多個(gè)要分配的WLEC連接池,使用移動(dòng)控件將所選擇的WLEC連接池移動(dòng)到Chosen列。
????*?通過(guò)管理控制臺(tái)的Server節(jié)點(diǎn)監(jiān)視某一服務(wù)器上的所有WLEC連接池:選擇一個(gè)需要監(jiān)視連接池的服務(wù)器,點(diǎn)Monitor?All?WLEC?Connection?Pools?on?This?Server鏈接,所有分配給這臺(tái)服務(wù)器的連接池會(huì)顯示在右窗格中的WLEC?Connection?Pools列表中。
????*?Server節(jié)點(diǎn)為一臺(tái)服務(wù)器分配XML?注冊(cè)表,選擇要分配XML?注冊(cè)表的服務(wù)器,從XML?注冊(cè)表的下拉列表中選擇一個(gè)注冊(cè)表,點(diǎn)Apply保存設(shè)置。
????*?Server節(jié)點(diǎn)分配郵件會(huì)話:選擇一個(gè)要分配郵件會(huì)話的服務(wù)器,從Available列中選擇要分配給服務(wù)器的郵件會(huì)話,使用移動(dòng)控件把所選擇的移動(dòng)會(huì)話移動(dòng)到Chosen列中,點(diǎn)Apply按鈕保存設(shè)置。
????*?通過(guò)管理控制臺(tái)為服務(wù)器分配文件T3s:選擇一個(gè)要分配文件T3的服務(wù)器,從Available列中選擇要分配給服務(wù)器的文件T3s,使用移動(dòng)控件把所選擇的文件T3s移動(dòng)到Chosen列,點(diǎn)Apply按鈕保存設(shè)置。
????*?Connection連接,然后查看管理控制臺(tái)右邊窗格里的表格中的內(nèi)容。
????*?使用管理控制臺(tái)的Server節(jié)點(diǎn)進(jìn)行強(qiáng)制垃圾收集:點(diǎn)擊要監(jiān)控的服務(wù)器,點(diǎn)擊JVM標(biāo)簽頁(yè),點(diǎn)擊頁(yè)面上的Force?Garbage?Collection連接,將彈出是否要進(jìn)行垃圾收集的確認(rèn)對(duì)話框。
?
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID ... 0&tstart=0&quint=true
?
安全管理?WebLogic?AD?ldap?配置方法
Weblogic?AD?ldap?配置方法
?
一創(chuàng)建并配置windows端AD.
1?在AD中加入新的OU,myOrg.
2?在myOrg中加入兩個(gè)ou?,groups?和people。在groups中加入兩個(gè)組group1,group2,在people中加入兩個(gè)用戶user1,user2.
3配置user1用戶屬于組group1,user2用戶屬于組group2。
windows?Active?Directory?端配置完畢。
?
二得到配置參數(shù)
1?下載ldap?brSofterra?LDAP?Browser?2.5?(可用google搜索)
2?配置ldap?browser。
打開(kāi)ldap?browser應(yīng)用程序。創(chuàng)建新的profile。
?
填入?yún)?shù):
單擊fetch?DNs?(only?ldap?v.3)?得到自動(dòng)配置的ldap?基礎(chǔ)配置
在DC=www?前面加入AD中配置的OU=myOrg。
完成后如下圖。表示連接AD?成功
得到base?DN?參數(shù)為?OU=myOrg,DC=www,DC=test,DC=com,?(DC=www,DC=test,DC=com視您的windows域而定,本例域?yàn)閣ww.test.com)。
?
三配置weblogic?server
啟動(dòng)域,打開(kāi)控制器http://localhost:7001/console。
配置新的authentication。
點(diǎn)擊authentication?。在右邊選擇configure?a?new?active?directory?authenticator
?
1?General?中的配置
2?Active?Directory欄配置
3?user欄配置
user欄只需要修改User?Base?DN?為自己的user?base?DN,這里填入ldap?browser?中得到的數(shù)據(jù)OU=myOrg,DC=www,DC=test,DC=com,不過(guò)我們要得到的是用戶所以在前面在加入我們創(chuàng)建的OU=people。
4?group?欄配置。
group?欄只需要修改group?Base?DN?為自己的group?base?DN,這里填入ldap?browser?中得到的數(shù)據(jù)OU=myOrg,DC=www,DC=test,DC=com,不過(guò)我們要得到的是組所以在前面在加入我們創(chuàng)建的OU=groups。
?
保存后其余的都不用在修改了。
我們?cè)俅吸c(diǎn)擊user時(shí),ldap中的用戶和組就加入到weblogic?server?的用戶中了
?
原文地址:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID= ... 4&tstart=25&quint=true
?
口令的保護(hù)
保護(hù)用來(lái)訪問(wèn)WebLogic服務(wù)器資源的口令是很重要的。在過(guò)去,用戶名與口令以明文的形式存儲(chǔ)在WebLogic服務(wù)器的安全域中。現(xiàn)在?WebLogic服務(wù)器對(duì)所有口令進(jìn)行散列化。當(dāng)WebLogic服務(wù)器獲得一個(gè)客戶端請(qǐng)求時(shí),客戶端所輸入的口令也被散列化,然后把散列化結(jié)果與所保存的散列化口令進(jìn)行比較,看它們是否相互匹配。
?
每個(gè)filerealm.properties文件都有一個(gè)與它關(guān)聯(lián)的SerializedSystemIni.dat文件,這個(gè)文件被用來(lái)散列化口令。在安裝時(shí),SerializedSystemIni.dat文件保存在\wlserver6.1\config\mydomain目錄下,如果該文件被破壞,那么就需要重新配置WebLogic服務(wù)器。
我們建議你采用以下預(yù)防措施:
備份SerializedSystemIni.dat文件,并將其與filerealm.properties文件的備份存放于同一目錄下。設(shè)置?SerializedSystemIni.dat文件的訪問(wèn)權(quán)限,例如只允許WebLogic服務(wù)器的管理員有讀寫(xiě)這個(gè)文件的權(quán)限,其它用戶沒(méi)有這個(gè)文件的任何權(quán)限。
?
如果你使用的是weblogic.properties文件,并且想散列化這個(gè)文件中的口令,你可以用管理控制臺(tái)主窗口的Convert?weblogic.properties選項(xiàng)將weblogic.properties文件轉(zhuǎn)換為config.xml文件。一旦文件被轉(zhuǎn)換,則所有現(xiàn)存的口令就已經(jīng)被保護(hù)了。
?
Config.xml文件中的不在含有明文的口令,若在其中保存明文的口令,config.xml會(huì)對(duì)其進(jìn)行加密并被散列化該口令。被加密的口令不能從一個(gè)域復(fù)制到另一個(gè)域,而是應(yīng)該使用明文口令替換config.xml中被加密的散列化口令,然后再將文件復(fù)制到另外一個(gè)域中。管理控制臺(tái)在下一次寫(xiě)文件時(shí)會(huì)加密并散列化口令。
?
?
?
要保護(hù)WebLogic服務(wù)器的口令,執(zhí)行以下操作:
1.?打開(kāi)管理控制臺(tái)
2.?點(diǎn)擊Security節(jié)點(diǎn)
3.?在管理控制臺(tái)右側(cè)窗格中選擇Passwords標(biāo)簽頁(yè)。
4.?定義該標(biāo)簽頁(yè)中需要配置的屬性,按照相應(yīng)的提示輸入值,并選中必須選擇的復(fù)選框(詳細(xì)信息,參見(jiàn)下表)。
5.?點(diǎn)Apply按鈕保存所做的設(shè)置
6.?重啟WebLogic服務(wù)器。
?
如下詳細(xì)描述了Security?Configuration窗口的Password標(biāo)簽頁(yè)上的各個(gè)屬性。
????*?Minimum?Password?Length:?口令所需的長(zhǎng)度,至少為8個(gè)字符。缺省為8個(gè)字符
????*?Lockout?Enabled:?在超過(guò)Lockout?Threshold次嘗試后,是否需要鎖住某個(gè)登錄無(wú)效的帳號(hào)。缺省情況下,該屬性被啟用。
????*?Lockout?Threshold:當(dāng)一個(gè)用戶試圖登錄到一個(gè)用戶帳戶,因口令不對(duì)而失敗,那么多少次這樣的失敗登錄后將鎖住這個(gè)帳號(hào)。以后對(duì)該帳號(hào)的訪問(wèn)(即使是?username/password是正確)也將引發(fā)Security異常;在管理員對(duì)該帳號(hào)進(jìn)行解鎖前,或在鎖住期限內(nèi),該帳號(hào)一直處于鎖住的狀態(tài)。注意非法登錄必須在Lockout?Reset?Duration屬性所定義范圍內(nèi)。默認(rèn)為5
????*?Lockout?Duration:該屬性定義了當(dāng)某一帳戶因?yàn)樵贚ockout?Reset?Duration期限內(nèi)發(fā)生非法登錄而被鎖住后,多長(zhǎng)時(shí)間范圍內(nèi)該用戶帳號(hào)不能被使用。要解開(kāi)一個(gè)被鎖住的用戶帳號(hào),你必須擁有?weblogic.passwordpolicy中的unlockuser權(quán)限。默認(rèn)為30分鐘。
????*?Lockout?Reset?Duration:該屬性定義了在多長(zhǎng)時(shí)間里,非法登錄某一帳號(hào)將導(dǎo)致該帳號(hào)被鎖住。在本屬性定義的時(shí)間范圍內(nèi),當(dāng)非法登錄的次數(shù)超過(guò)了Lockout?Threshold屬性所定義的值,那么該帳號(hào)將被鎖住,例如,該屬性被設(shè)置為5分鐘,當(dāng)帳號(hào)在6分鐘內(nèi)被非法登錄了3次,那么該帳號(hào)不會(huì)被鎖住,但是,如果在5分鐘內(nèi),發(fā)生了5次非法登錄,那么該帳號(hào)將被鎖住。缺省為5分鐘。
????*?Lockout?Cache?Size:指定無(wú)效的或非法的登錄意圖的緩存大小。缺省為5