小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

通向架構(gòu)師的道路(第八天)之weblogic與apache的整合與調(diào)優(yōu)

 richsky 2012-07-19

一、BEAWeblogic的歷史

BEA WebLogic是用于開發(fā)、集成、部署和管理大型分布式Web應用、 網(wǎng)絡應用和數(shù)據(jù)庫應 

用的Java應用服務器。將Java的動態(tài)功能和Java Enterprise標準的安全性引入大型網(wǎng)絡應用的 

開發(fā)、集成、部署和管理之中。 

BEA WebLogic Server擁有處理關(guān)鍵Web應用系統(tǒng)問題所需的性能 、可擴展性和高可用性。 

與BEA WebLogic Commerce ServerTM配合使用, BEA WebLogicServer可為部署適應性個性化 

電子商務應用系統(tǒng)提供完善的解決方案。 

BEA WebLogic Server具有開發(fā)和部署關(guān)鍵任務電子商務Web應用系統(tǒng)所需的多種特色和優(yōu) 

勢,包括: 

1)      領先的標準 

對業(yè)內(nèi)多種標準的全面支持,包括EJB、JSB、JMS、JDBC、XML和WML,使Web應用系統(tǒng)的實 

施更為簡單,并且保護了投資,同時也使基于標準的解決方案的開發(fā)更加簡便。 

2)      無限的可擴展性 

BEA WebLogicServer以其高擴展的架構(gòu)體系聞名于業(yè)內(nèi),包括客戶機連接的共享、資源 

pooling以及動態(tài)網(wǎng)頁和EJB組件群集。 

3)      快速開發(fā) 

憑借對EJB和JSP的支持,以及BEAWebLogic Server 的Servlet組件架構(gòu)體系,可加速投 

放市場速度。這些開放性標準與WebGainStudio配合時,可簡化開發(fā),并可發(fā)揮已有的技能, 

迅速部署應用系統(tǒng)。 

4)      部署更趨靈活 

BEA WebLogicServer的特點是與領先數(shù)據(jù)庫、操作系統(tǒng)和Web服務器緊密集成。 

5)      關(guān)鍵任務可靠性 

其容錯、系統(tǒng)管理和安全性能已經(jīng)在全球數(shù)以千記的關(guān)鍵任務環(huán)境中得以驗證。 

6)      體系結(jié)構(gòu) 

BEA WebLogicServer是專門為企業(yè)電子商務應用系統(tǒng)開發(fā)的。企業(yè)電子商務應用系統(tǒng)需 

要快速開發(fā),并要求服務器端組件具有良好的靈活性和安全性,同時還要支持關(guān)鍵任務所必需 

的擴展、性能、和高可用性。BEAWebLogic Server簡化了可移植及可擴展的應用系統(tǒng)的開發(fā), 

并為其它應用 系統(tǒng)和系統(tǒng)提供了豐富的互操作性。 

憑借其出色的群集技術(shù),BEAWebLogic Server擁有最高水平的可擴展性和可用性。BEA 

WebLogic Server既實現(xiàn)了網(wǎng)頁群集,也實現(xiàn)了EJB組件 群集,而且不需要任何專門的硬件或 

操作系統(tǒng)支持。網(wǎng)頁群集可以實現(xiàn)透明的復制、負載平衡以及表示內(nèi)容容錯,如Web購物車; 

組件群集則處理復雜的復制、負載平衡和EJB組件容錯,以及狀態(tài)對象(如EJB實體)的恢復。 

無論是網(wǎng)頁群集,還是組件群集,對于電子商務解決方案所要求的可擴展性和可用性都是至關(guān) 

重要的。共享的客戶機/服務器和數(shù)據(jù)庫連接以及數(shù)據(jù)緩存和EJB都增強了性能表現(xiàn)。這是其它 

Web應用系統(tǒng)所不具備的。 

二、Weblogic對各jdk版本的支持

標準

WLS 7.0

WLS 8.1

WLS 9.0

WLS 10.0

WLS 10.3

WLS 12.0

java

1.3

1.4

5

5

6

7

JAVA EE

1.3

1.3

1.4

5

6

6

這個對jdk版本的支持一定要牢牢記?。?/strong>

比如說你手上有一個bea weblogic10.0,你拿它布署了只有jdk1.6才能解釋的東西,就不要怪weblogic啦,而且沒有為什么的,到時不支持就是不支持。

反過來:

說你機器上裝的是jdk1.6,你裝個weblogic 8.x,嘿嘿,一樣不支持。

Weblogic從8.x后被Oracle收購了,成了和OracleDatabase一樣的可以在Oracle官網(wǎng)上免費下載的軟件,而且不是那種trial version或者是development version,是真正的企業(yè)版,只要你拿它做實驗、個人研究、玩不用在任何商業(yè)收費行為,是沒有任何問題的,因此Weblogic從9.0后各版本可以從Oracle官網(wǎng)上免費下載,而且可以無限期使用沒有l(wèi)icense.jar這個東西再困擾你了(下載Oracle Weblogic)。

三、Weblogic的安裝

3.1 32位的weblogic

我們在Windows環(huán)境下一般安裝32位的weblogic:

它一般是一個exe文件,雙擊即可安裝。

3.2 64位的weblogic

如果你的機器是64位的操作系統(tǒng)或者是Linux/Unix操作系統(tǒng),一般下載下來后都是一個.jar文件:

你安裝時需要鍵入java –d64 –jar wls1034_generic.jar。

如果是32位可以不需要這個-d64的參數(shù),如果是64位機器一定一定一定要記得加這個-d64,要不然。。。。。。嘿嘿,它在安裝界面出來后會拋一個out of memory的錯。。。。。。偶暈!

3.3 安裝

確保你的JAVA_HOME變量與path里包含有%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin。

如果是Linux環(huán)境,你的JAVA_HOME與path的設置如下:

export $JAVA_HOME=/opt/jdk/java6

export $path=$path:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

環(huán)境設置好后在weblogic安裝時會找到你系統(tǒng)的JDK,我在此建議大家在安裝Weblogic時盡量用標準的Oracle Sun的JDK,當然Weblogic也自帶jdk,由于都是Oracle的產(chǎn)品,因此用Oracle Sun的JDK最標準。

將“我希望通過My Oracle Support接收安全更新”項前的勾disable掉,然后在彈出對話框中選”Yes”。


我們選定制安裝


我們只安裝Weblogic Server,暫不安裝OracleCoherence,在以后的網(wǎng)格與云里會講這個Oracle Coherence。


我們不要使用Weblogic自帶的jdk也不用它自帶的jrockit,我們點下面的[瀏覽]按鈕,選中本地的jdk的主目錄(即OracleSun的標準JDK)。

有人說用JRockit要吧獲得更好的性能,還有人建議在32位機下使用JRockit可以突破jvm在32位機下只能使用到2GB內(nèi)存的限制。。。。。。

如果真要用大內(nèi)存還不如使用64位機呢,真折騰,而且JRockit里的jvm優(yōu)化參數(shù)調(diào)優(yōu)和標準的SUN的JDK是不同的。


注意這邊的路徑名,確保不要帶有空格,下劃線等特殊字符,java對特殊字符很忌諱的,有時一個編譯錯誤不知道為什么,就是因為java home帶有空格或者下劃線一類的,你的目錄名干凈點,比如說:

有的人安裝java就用默認安裝路徑,什么c:\programfiles\java\jdk1.6.3.2什么什么之類的。

你直接一個c:\jdk6這樣一個名字,多干凈?

這邊再多啰嗦幾句,tomcat的安裝路徑也是這樣的,你直接d:\tomcat1, d:\tomcat2多干凈,哪要這么多什么d:\apache_jakarta_tomcat6.0.12這樣的東西啊,對吧!


選否。


這里隨便。


最后review一下,開始安裝了。


裝好了,把“運行Quickstart”選項前的勾disable掉,我們可以看到windows菜單里有了我們的weblogic的菜單了,如下圖所示:


四、使用Weblogic

還記得我們的Tomcat如何布署我們的WAR應用程序嗎?把WAR包或者是WAR目錄結(jié)構(gòu)扔到tomcat的webapps目錄下,對吧!

Weblogic的webapps目錄被稱為domain,因此我們在裝完weblogic后如果需要建立自己的webapp,就需要建一個domain。

4.1 建立domain

在我們的Windows菜單點選擇Oracle Weblogic->Weblogic Server11gR1->Tools->Configuration Wizard

這個是Weblogic的admin console的登錄信息,即weblogic裝完后有一個網(wǎng)頁版的主控制臺,用于配置和布署我們的web app的應用的,它一般以:http://ip:7001/console 這樣的形式登錄,登錄時需要用戶名和密碼,就如同tomcat的http://localhost:8080/manager/html這個console一樣,我們的用戶名叫”weblogic”,我們的密碼就叫”password_1”吧。



我們將我們這個用于實驗的domain名取成mydomain。

這邊來了,還記得我們在“(第四天)之Tomcat性能調(diào)優(yōu)-讓小貓飛奔”說到過的jvm的參數(shù)之:java –serverjava –client的區(qū)別嗎?

l   這邊的”開發(fā)模式”就是你的weblogic將以java –client模式啟動;

l   如果你選的是”生產(chǎn)模式” 那么你的weblogic將以java –server模式啟。

選”生產(chǎn)模式”點”下一步”。

這邊我們一個不選,因為我們先不做weblogic的集群配置。點”下一步”。

點[創(chuàng)建]按鈕。

創(chuàng)建成功。點[完成]結(jié)束domain的配置。

Look,這個就是我們剛才創(chuàng)建的domain,現(xiàn)在開始讓我脫離windows菜單來用命令行啟動、停止weblogic吧,因為在大型應用中一般weblogic或者是IBMWebsphere都是運行在Unix小型機上或者是64位的Linux機器上的,因此大家要開始熟悉命令操作了。

4.2.1 啟動weblogic前的準備工作

Weblogic的啟動一般是調(diào)用”weblogic安裝目錄\yourdomain\”目錄下的startWebLogic.cmd或者是startWebLogic.sh(UNX/LNX下)來啟動weblogic的。

而startWebLogic會選調(diào)用”weblogic安裝目錄\yourdomain\bin\”目錄下的setDomainEnv.cmd或者是setDomainEnv.sh(UNX/LNX下)來初始化環(huán)境變量的。

先別急著啟動,啟動前我們來做一些優(yōu)化

我們使用文件編輯工具打開setDomainEnv.cmd文件,搜索:MEM_ARGS這個關(guān)鍵字,可以找到下面這么一大陀(這是Weblogic11里的內(nèi)容,在10里不一樣的)

set WLS_HOME=%WL_HOME%\server

if "%JAVA_VENDOR%"=="Sun" (

         set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m

         set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m

) else (

         set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m

         set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m

)

set MEM_ARGS_64BIT=%WLS_MEM_ARGS_64BIT%

set MEM_ARGS_32BIT=%WLS_MEM_ARGS_32BIT%

if "%JAVA_USE_64BIT%"=="true" (

         set MEM_ARGS=%MEM_ARGS_64BIT%

) else (

         set MEM_ARGS=%MEM_ARGS_32BIT%

)

set MEM_PERM_SIZE_64BIT=-XX:PermSize=128m

set MEM_PERM_SIZE_32BIT=-XX:PermSize=48m

if "%JAVA_USE_64BIT%"=="true" (

         set MEM_PERM_SIZE=%MEM_PERM_SIZE_64BIT%

) else (

         set MEM_PERM_SIZE=%MEM_PERM_SIZE_32BIT%

)

set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m

set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m

不難看懂,很簡單,我們是32位的機器,因此我們就在32位所對應的jvm的設置里做一些調(diào)整。

1)      我們先把32位下的PermSize從原來的48m改成128m,把32位下的MaxPermSize從128m改成256m

set MEM_PERM_SIZE_32BIT=-XX:PermSize=128m

if "%JAVA_USE_64BIT%"=="true" (

         set MEM_PERM_SIZE=%MEM_PERM_SIZE_64BIT%

) else (

         set MEM_PERM_SIZE=%MEM_PERM_SIZE_32BIT%

)

set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m

set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=256m

 

 

 

 

 

 

 

2)      更改jvm 的heap size

if "%JAVA_VENDOR%"=="Sun" (

set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m

set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m

) else (

set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m

set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m

)

上面這段根據(jù)你們自己的實際情況將WLS_MEM_ARGS_32BIT=后的值進行修改。

注意:

l   Xms與Xmx設成一樣大小

l   修改Xmx值前請先用java –Xmx你想要的sizem –version進行測試

我們這個例子里就暫都改成512m就夠了。一定不要在數(shù)值后面漏打”m”?。?/span>

if "%JAVA_VENDOR%"=="Sun" (

         set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m

         set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m

) else (

         set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m

         set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m

)

找到下面這一段:

set MEM_ARGS_64BIT=%WLS_MEM_ARGS_64BIT%

set MEM_ARGS_32BIT=%WLS_MEM_ARGS_32BIT%

現(xiàn)在可以加入我們的jvm調(diào)優(yōu)參數(shù)了,如下:

set MEM_ARGS_64BIT=%WLS_MEM_ARGS_64BIT% -Dweblogic.threadpool.MinPoolSize=25 -Dweblogic.threadpool.MaxPoolSize=1000 -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=128M -XX:MaxPermSize=256M -XX:+DisableExplicitGC

-XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC  -XX:+CMSParallelRemarkEnabled

-XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m  -XX:+UseFastAccessorMethods

-XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true

 

set MEM_ARGS_32BIT=%WLS_MEM_ARGS_32BIT% -Dweblogic.threadpool.MinPoolSize=25 -Dweblogic.threadpool.MaxPoolSize=1000

-Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=128M -XX:MaxPermSize=256M -XX:+DisableExplicitGC

-XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC  -XX:+CMSParallelRemarkEnabled

-XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m  -XX:+UseFastAccessorMethods

-XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true

除了:

l   -Dweblogic.threadpool.MinPoolSize=25

l   -Dweblogic.threadpool.MaxPoolSize=1000

其它的參數(shù)均已經(jīng)在“(第四天)之Tomcat性能調(diào)優(yōu)-讓小貓飛奔->2.2 Tomcat啟動行參數(shù)的優(yōu)化”中詳細擅訴過了。

那么上面這兩個值是什么意思?

這兩個值就是weblogic的“應用程序線程池”,它的大小決定了你的應用程序服務器的“吞吐量”或者說是“容量”,以前在Weblogic中可以通過登錄weblogic 的http://yourip:7001/console后顯視的去做調(diào)整,而在weblogic9.x后這兩個值變成了隱視的了,因此很多人不知道如何去調(diào)Weblogic里的線程池的大小,是因為根據(jù)在console界面中找不到這兩個值來讓你修改的,所以我們在weblogic的啟動參數(shù)中,可以手工的加上,如果你不加也行,weblogic有一個默認的線程池的大小的。一般為最小25最大200。依據(jù)你的服務器的性能可以加大這個值。

4.2.2 啟動weblogic

鍵入上述的命令后回車

Weblogic啟動控制臺會提示要你輸入用戶名和密碼,即我們在“創(chuàng)建domain”時輸入的weblogic/password_1。

我們輸入相應的用戶名和密碼后,一直看到控制臺輸出這樣一行信息后,即代表我們的weblogic啟動正常無誤了。

4.2.3 如何讓Weblogic每次啟動時不用再輸入用戶名和密碼

每次啟動Weblogic時都要輸入用戶名和密碼,假設我的Weblogic是自動隨著我的服務器的啟動而啟動,那么如果此時因為是無人值守,鬼才來輸這個用戶名和密碼啊,是不是?

所以,我們先文本編輯工具先來制作一個文件,叫boot.properties,內(nèi)容很簡單,如下所示:

username=weblogic

password=password_1

然后我們來到我們的domain的目錄下

如:”D:\oracle\Middleware\user_projects\domains\mydomain\servers\AdminServer”目錄下,手工建一個security的目錄,將剛才新建的boot.properties文件,拷入此目錄后,重啟weblogic。

此時你會發(fā)覺,weblogic再也不會提示要求你輸入weblogic管理臺的用戶名和密碼了,等到啟動成功后,即看到這樣的輸出行:

我們來到” D:\oracle\Middleware\user_projects\domains\mydomain\servers\AdminServer\security”目錄,打開剛才拷入的boot.properties,它的內(nèi)容已經(jīng)自動變成了下面這樣了:

#Thu Jul 19 11:54:14 CST 2012

password={AES}anBOrQK1z+ErQKBJSKxlN1t2qv+hxmhyzhQW6S4WnLQ\=

username={AES}D2z8M4xrI3E981Q6u4cfbgAMlDcd23LVgLxvTxARc6k\=

Weblogic把它給加密了,因此只有裝Weblogic的那個人即SystemAdmin才真正知道Weblogic控制臺的登錄信息,這樣就很安全了。

4.2.4 配置Weblogic的數(shù)據(jù)源

在Weblogic運行的狀態(tài)下我們用ie進入Weblogic的adminconsole,輸入http://localhost:7001/console




輸入我們在創(chuàng)建domain時的用戶名與密碼

記得要把“鎖定并編輯”變成“釋放配置”的狀態(tài),要不然,你們看,右邊的數(shù)據(jù)源的編輯按鈕全部是灰色的。

點[新建]按鈕選“一般數(shù)據(jù)源”。

我們使用oracle來配置我們的jdbc數(shù)據(jù)源。

填入相應的數(shù)據(jù)庫的連接信息下一步下一步到如下這個界面:

把數(shù)據(jù)源需要起作用的服務器即“target”要選中,因為在Weblogic里可以用一個控制臺控制多個Server,那么你的數(shù)據(jù)源是針對哪臺server起作用呢?你需要告訴Weblogic。

點擊[完成]

4.2.5 調(diào)優(yōu)Weblogic的數(shù)據(jù)源

記得點擊控制臺左上角的“激活并保存編輯修改”,要不然剛才所做的操作全部作廢,保存后你會看到如上的信息。

點擊我們剛才新建的數(shù)據(jù)源,”jdbc_cbbsds”

進入此界面后點擊左上角的“鎖定并編輯”按鈕,右邊就是我們需要設置的值了。我們對“連接池”進行調(diào)整:

ü   初始容量

即最小數(shù)據(jù)連接數(shù)

ü   最大容量

最大數(shù)據(jù)連接數(shù)

ü   容量增長

每次增加的連接數(shù)

ü   語句高速緩沖類

為緩存選擇 least-recently-used (LRU) 算法;這將從緩存中刪除很少使用的語句。

還有一個值為Fixed。

LRU算法在有新的語句到來時,將最不經(jīng)常被用得語句調(diào)整出緩存。FIXED算法為先進先出的算法。

一般應用我們使用LRU。

ü   語句高速緩沖大小

增加Statement Cache Size對于大量使用PreparedStatement對象的應用程序很有幫助,WebLogic能夠為每一個連接緩存這些對象,此值默認為10。在保證數(shù)據(jù)庫游標大小足夠的前提下,可以根據(jù)需要提高Statement Cache Size。比如當你設置連接數(shù)為25,Cache Size為10時,數(shù)據(jù)庫可能需要打開25*10=250個游標。

那么我們的oracle數(shù)據(jù)庫默認最大游標假設為1000,我們最大連接數(shù)設了25,那么這個statement cache的值就應該為:40,因為25*40=1000。

這個值不能過大,如果是開發(fā)環(huán)境上可以把這個值設為0,在生產(chǎn)環(huán)境上需要根據(jù)你oracle的max cursor數(shù)量進行實際設定,不是說越大越好的,千萬不要拍腦袋啦!??!

注意:

和jvm的heap size一樣,將“初始容量”與“最大容量”設成相等,根據(jù)oracle默認最大支持150個processor,那么oracle默認最大的連接數(shù)為max processor*1.1即165,那么我們就給最大25最小25就夠了,必竟我們只是一個測試。

配完上面的參數(shù)后點一下保存,然后我們點“高級”這個鏈接。


高級有很多,我們一項項來過。

ü   保留時測試連接

請把此項打上勾。

我們的數(shù)據(jù)庫連接池會不斷的掃描我們的jdbc的連接使用情況,當發(fā)覺不用的jdbc連接時會“回收”掉它,因此你必須把這個選項的勾打上,要不然,weblogic的數(shù)據(jù)庫連接池不會去掃描你的不用的連接或者長時間不活動的連接,此選項將有助于你系統(tǒng)的穩(wěn)定性。比如說:有時我們碰到一些忘關(guān)的連接或者廢棄的連接,那么weblogic將會自動為我們“回收”這些連接,以使得數(shù)據(jù)庫連接池被充分利用。

ü   測試頻率

這個值與上面的“保留時測試連接”是關(guān)聯(lián)的,這個值默認為120秒,即2分鐘,weblogic會產(chǎn)生一條探測語句“SQL SELECT 1 FROM DUAL”來探測你的oracle數(shù)據(jù)庫中的連接,這個值絕對不能太小比如說:60秒,或者更有甚者設了個5秒,那么你的weblogic會不停的向oracle發(fā)送“SQL SELECT 1 FROM DUAL”語句,并且造成大量的inactive狀態(tài)的數(shù)據(jù)庫連接,最后甚至把你的oracle數(shù)據(jù)庫給活活搞死,搞死搞死。。。。。。而且是“挺尸”就是數(shù)據(jù)庫服務器動也動不了了,真的,不信你試試!J

一般在production環(huán)境上,如果相對穩(wěn)定,可以把這個值,設大點,比如說:15分鐘,或者20分鐘探測一次。

ü   測試表名稱

就是“探測”數(shù)據(jù)庫的語句,我們就用它的默認的,挺好,不變

ü   初始化 SQL

保持默認,我們這邊沒有特殊的初始化的步驟。

        

ü   重試創(chuàng)建連接的頻率

嘗試建立數(shù)據(jù)庫連接的間隔秒數(shù)。

如果不設置此值,則在數(shù)據(jù)庫不可用的情況下,創(chuàng)建數(shù)據(jù)源的操作將失敗。如果已設置此值且在創(chuàng)建數(shù)據(jù)源時數(shù)據(jù)庫不可用,則在您指定的秒數(shù)之后,WebLogic Server 將重新嘗試在池中創(chuàng)建連接,并會不斷嘗試創(chuàng)建連接,直到創(chuàng)建成功。

如果設置為 0,則將禁用連接重試。

         我們此處就保持為0,沒有特殊需求好failout的相關(guān)的需求(這個要根據(jù)客戶的需求來定的)。

ü   登錄延遲

         創(chuàng)建每個物理數(shù)據(jù)庫連接前的延遲秒數(shù)。此延遲支持不能快速連續(xù)處理多個連接請求的數(shù)據(jù)庫服務器。

在初始數(shù)據(jù)源創(chuàng)建及數(shù)據(jù)源生命周期內(nèi),每當創(chuàng)建物理數(shù)據(jù)庫連接時都會有此延遲。

我們保持它為0。

ü   非活動連接超時        

保留連接處于不活動狀態(tài)的秒數(shù),該秒數(shù)過后WebLogic Server 將收回該連接并將其釋放回連接池。

可以使用“非活動連接超時”功能收回泄漏的連接 - 未由應用程序顯式關(guān)閉的連接。請注意,不能使用此功能來代替正常關(guān)閉連接。

如果設置為 0,則將禁用此功能。

如果上面的“保留時測試連接”、“測試頻率”,“測試表名稱”沒有設置或者是“保留時測試連接”沒有勾選,那么這個選項是沒有用處的,因為它就是我們上面提到的,Weblogic會自動為我們釋放一個超時的連接,這個超時要和oracle數(shù)據(jù)庫中的sql_time_out一致,比如說:60秒,我們回收一個超時了的inactive的連接。

這個值的設定對我們數(shù)據(jù)庫的穩(wěn)定性和性能也有著很大的影響。

ü   最大等待連接數(shù)        

等待保留數(shù)據(jù)源的連接池中的連接時會阻塞線程的最大并發(fā)連接請求數(shù)。

來看它的默認值“2147483647”,這邊可千萬不要用默認值啊,要不然你的數(shù)據(jù)庫也一樣會在出現(xiàn)阻塞或者是死鎖時活活被搞死,搞死搞死。。。。。。而且是“挺尸”,為啥,一個阻塞了沒事,這下好,一個阻塞了,然后它允許后面的連接繼續(xù)進,進啊進啊進,你人又不可能天天時時分好盯著個oracle的監(jiān)控端看著它,好了,進到2147483647個連接時,數(shù)據(jù)庫不死了才怪呢。

一般太平點的,給個合理的數(shù)量就可以了,比如說100或者是200,不要超過oracle數(shù)據(jù)庫提供的最大max session數(shù)就可以了。

ü   連接保留超時   

保留連接池中的連接的調(diào)用超時之前經(jīng)過的秒數(shù)。

如果設置為 0,則調(diào)用永遠不會超時。

如果設置為 -1,則調(diào)用會立即超時(對數(shù)據(jù)庫來說,這個值是最安全的,SQL語句一被調(diào)用就超時,然后經(jīng)過上面的“非活動連接超時”后,會被weblogic的數(shù)據(jù)庫連接池給回收。

ü   語句超時  

此時間后當前正在執(zhí)行的語句將超時。

StatementTimeout依賴于底層 JDBC 驅(qū)動程序支持。WebLogic Server 使用 java.sql.Statement.setQueryTimeout() 方法將指定的時間傳遞給 JDBC 驅(qū)動程序。如果 JDBC 驅(qū)動程序不支持此方法,可能會引發(fā)異常錯誤并導致忽略超時值。

值為 -1 時禁用此功能。

值為 0 表示語句不會超時。

最小值:-1

最大值:2147483647

注:

下面三個選項保持默認選擇,沒有特殊應用時不需要設置。

ü   忽略正在使用的連接

即便仍在使用從池獲取的連接,也能夠?qū)?shù)據(jù)源關(guān)閉。

ü   固定到線程       

PinnedToThread 是一個能夠改善性能的選項,它啟用執(zhí)行線程以保持已入池的數(shù)據(jù)庫連接,即使在應用程序關(guān)閉邏輯連接之后。

啟用 PinnedToThread 后,WebLogicServer 將在應用程序首次使用某個執(zhí)行線程保留連接時將連接池中的一個數(shù)據(jù)庫連接固定到此線程。當應用程序使用完此連接并調(diào)用 connection.close() (此方法在其他情況下會將連接返回到連接池) 時,WebLogic Server 會將該連接保留給執(zhí)行線程,而不會將其返回連接池。當此后某個應用程序使用相同的執(zhí)行線程請求連接時,WebLogic Server 將提供此線程已保留的這個連接。

使用 PinnedToThread,當多個線程嘗試同時保留一個連接時,連接池上不會發(fā)生鎖定沖突,對于試圖在有限個數(shù)的數(shù)據(jù)庫連接中保留同一個連接的線程,也沒有沖突。

如果應用程序使用相同的執(zhí)行線程同時保留連接池中的多個連接,WebLogic Server 將創(chuàng)建附加的數(shù)據(jù)庫連接并同樣將它們固定到此線程。

ü   已啟用刪除受影響的連接  

指定在應用程序使用底層供應商連接對象之后是否從連接池中刪除連接。

如果禁止刪除已占用的連接,必須確保該數(shù)據(jù)庫連接適合由其他應用程序重用。

設置為真 (默認設置) 時,應用程序關(guān)閉邏輯連接后不會將物理連接返回給連接池。將關(guān)閉并重新創(chuàng)建此物理連接。

設置為假時,應用程序關(guān)閉邏輯連接后,物理連接將返回到連接池并可由該應用程序或其他應用程序重用。

全部設置完了,不要忘了點頁面最下端的[保存]按鈕,并且點左邊菜單上方的[激活并更改]按鈕,要不然你剛才的一切設置均作廢。

在保存后我們來點“監(jiān)視”這個tab

點“測試”

Look, 測試成功。重啟Weblogic(只有重啟Weblogic才會使得“高級”配置里的參數(shù)生效)。

怎么重啟:

ü   Windows下

直接ctrl+c,然后重新啟動

ü   Linux下

盡量使用stopWebLogic.sh或者使用ps –ef |grep java,查到weblogic所屬的進程,然后使用:

kill -9 進程號

來殺,這個太暴力了?。。?/p>

4.2.6 部署web應用

Weblogic是真正的J2EE App Server,它不僅可以布署WAR應用,還可以布署EAR應用包括EJB,而Tomcat是做不到的,它只能布署WAR應用,如果要布署EAR或者EJB需要安裝和配置額外的插件。

確保你的web應用中web.xml里綁定的數(shù)據(jù)源的jndi名與weblogic里設定的數(shù)據(jù)庫連接池的jndi名一致

<resource-ref>

                   <description>oracle db</description>

                   <res-ref-name>jdbc/cbbsds</res-ref-name>

                   <res-type>javax.sql.DataSource</res-type>

                   <res-auth>Container</res-auth>

                   <res-sharing-scope>Shareable</res-sharing-scope>

</resource-ref>

你布署的可以是一個“打碎了的符合war格式的目錄”也可以是一個war包。

點左邊菜單的“布署”,然后點“鎖定并編輯”,然后右邊的按鈕就可以用了。

此時,點[安裝],定位到你的要布署的WAR

點下一步。

然后出錯了,嘿嘿!

打開WAR里的WEB-INF\下的web.xml看啊看,看到這一行:

                   <taglib>

                            <taglib-uri>/myPageTag</taglib-uri>

                            <taglib-location>/WEB-INF/tld/myPageTag.tld</taglib-location>

                   </taglib>

哦,知道了,weblogic的jstl校驗很嚴格,原來在tomcat里工程跑的那叫一個歡呀,跑到weblogic里了,把這段改成下面這樣的形式吧:

         <jsp-config>

                   <taglib>

                            <taglib-uri>/myPageTag</taglib-uri>

                            <taglib-location>/WEB-INF/tld/myPageTag.tld</taglib-location>

                   </taglib>

         </jsp-config>

看到區(qū)別沒有?在<taglib>外要多一對<jsp-config>,嘿嘿,仔細,仔細!

改完后保存web.xml,重新回weblogic布署。

然后下一步下一步,下啊下啊下。。。再往下,到了這一步:

點[保存]。


點“激活更改”。在“產(chǎn)品模式(production mode)”下,每次作過什么動作都必須“激活更改”一下,才能生效,一定記住,下次就再也不提了。

布署好后,看這個狀態(tài),這邊的狀態(tài)是“準備就緒”,準備就緒不代表此應用可以用,要使它的狀態(tài)變成激活狀。

選中此應用前的checkbox

選“為所有請求提供服務”。

選“是”。

就代表部署成功了,你此時可以打開一個IE輸入:http://localhost:7001/cbbs,登錄后一切正常,Weblogic下WAR應用布署成功。

五、整合Weblogic與Apache

還記得我在第一天的“之Apache整合Tomcat”中講到過,apache和tomcat是通過mod_jk來派發(fā)java請求給tomcat的嗎?那么一樣,weblogic是通過mod_wl_apache的版本號.so來做同樣的事。

從我們的FTP中可以得到這些.so文件(也可以直接上oracle官網(wǎng)上下這些.so文件,免費公開的),我們來看。

1)      拷貝mod_wl_22.so文件至apache的安裝目錄下的modules目錄,如我的是:D:\tools\httpd\modules。

2)      打開httpd.conf文件,還記得我們在第一天中的httpd.conf文件嗎?找到<VirtualHost>,在它的上面,敲一個回車,加入下面這一陀東西

LoadModule weblogic_module modules/mod_wl_22.so

<IfModule mod_weblogic.c>

   WebLogicHost localhost

   WebLogicPort 7001

   MatchExpression /cbbs/WEB-INF

   MatchExpression /cbbs/*WEB-INF

   MatchExpression /cbbs/*.action

   MatchExpression /cbbs/servlet/*

   MatchExpression /cbbs/*.jsp

   MatchExpression /cbbs/*fckeditor/editor/filemanager/connectors/*.*

   MatchExpression /cbbs/fckeditor/editor/filemanager/connectors/*

   WLLogFile logs/wlproxy.log

</IfModule>

看這個MatchExpression,還記得mod_jk里的JKMount嗎?到了Weblogic和apache映射就成了MatchExpression了。

另:

在production環(huán)境上應該WLLogFile logs/wlproxy.log這一句注釋掉,避免較多的log影響服務器的性能。

注意在兩個地方要把index.jsp放在首要位置:

1)       Web.xml文件中

<welcome-file-list>

           <welcome-file>index.jsp</welcome-file>

</welcome-file-list>

2)       Httpd.conf文件中

DirectoryIndex index.jsp index.html index.htm

啟動ie,輸入:http://shnlap93:7001/cbbs/

再來看weblogic控制臺:

Html等靜態(tài)內(nèi)容被apache解釋了,而java的內(nèi)容被weblogic解釋了,這就是apache+weblogic。

后一天,我們將講述利用apache+weblogic來實現(xiàn)集群,見識一下商業(yè)級App Server的強大吧!

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多