進(jìn)入weblogic后臺(tái),配置數(shù)據(jù)庫(kù)連接池。因?yàn)槲业捻?xiàng)目數(shù)據(jù)庫(kù)是ORACLE,那就以O(shè)racle的配置作為示例:
我的示例weblogic是8.x,其他版本都同理,找到參數(shù)后即可
進(jìn)入后臺(tái)后,單擊左邊的mydomain—>Services—>JDBC—>Connection Pools
新建我就不說了,在我的文章里面有weblogic的數(shù)據(jù)源連接create
9.x的要解鎖,那就先解鎖。點(diǎn)擊你想設(shè)置的數(shù)據(jù)源的名稱進(jìn)去。進(jìn)去后點(diǎn)擊上面的菜單Connections
看到參數(shù)設(shè)置了吧。
Initial Capacity:100 (初始化容器的連接數(shù))
Maximum Capacity:1000 (容器中最大的連接數(shù)1000,如果超過/還沒到1000就會(huì)報(bào)超出最大連接的錯(cuò)誤,原因你的Oracle安裝數(shù)據(jù)庫(kù)的時(shí)候其池沒設(shè)置大小,現(xiàn)在你也可以設(shè)置。設(shè)置方法:找到Oracle的init.ora文件這個(gè)文件一般在oracle/admin/數(shù)據(jù)庫(kù)SID/pfile里面。找到large_pool_size這一句,把這一句刪除,那就不受限制了。注意:沒受限制的情況下不要調(diào)這個(gè)參數(shù)太大了,35000就OK了,太大的時(shí)候數(shù)據(jù)庫(kù)會(huì)承受不起)
Capacity Increment:15 (一次增加多少個(gè)connection)
Statement Cache Size:50 (緩存大小)
按下下面的Advanced Options "Show",設(shè)置詳細(xì)的配置
下面是JNDI的自動(dòng)回收設(shè)置,比較重要,調(diào)幾個(gè)重要的參數(shù),其他的默認(rèn)
Test Frequency:3600(測(cè)試頻率,這個(gè)會(huì)消耗資源。這個(gè)看你的項(xiàng)目需要,一般代碼寫得比較好的可以設(shè)置長(zhǎng)點(diǎn)時(shí)間)
把下面三個(gè)都打上勾。通過測(cè)試,發(fā)現(xiàn)連接沒關(guān)的就會(huì)被回收(詳細(xì)說明可以看下面的參數(shù)說明)
Test Reserved Connections
Test Created Connections
Test Released Connections
Inactive Connection Timeout:60(無效連接超時(shí)!這個(gè)會(huì)在指定的時(shí)間內(nèi),回收無效連接)
網(wǎng)上有些人說設(shè)置這些參數(shù)后一定的時(shí)間會(huì)出現(xiàn)java.lang.OutOfMemoryError的錯(cuò)誤
解決的方法就是調(diào)大JVM的內(nèi)存,在啟動(dòng)時(shí)對(duì)jvm設(shè)置內(nèi)存限度
通過修改commom\bin\commEnv.cmd文件來增加內(nèi)存分配
修改的部分如下:
:bea
if "%PRODUCTION_MODE%" == "true" goto bea_prod_mode
set JAVA_VM=-jrockit
set MEM_ARGS=-Xms768m -Xmx1024m
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none
goto continue
:bea_prod_mode
set JAVA_VM=-jrockit
set MEM_ARGS=-Xms768m -Xmx1024m//這些看你內(nèi)存定1G的就設(shè)置=-Xms256m -Xmx512m
goto continue
:sun
if "%PRODUCTION_MODE%" == "true" goto sun_prod_mode
set JAVA_VM=-client
set MEM_ARGS=-Xms768m -Xmx1024m -XX:MaxPermSize=256m
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none
goto continue
:sun_prod_mode
set JAVA_VM=-server
set MEM_ARGS=-Xms768m -Xmx1024m -XX:MaxPermSize=256m//這個(gè)就解決了java.lang.OutOfMemoryError的錯(cuò)誤
goto continue
將這里的內(nèi)存分配修改后見效。
* Maximum Capacity: 連接池中連接的最大數(shù)目。
* Capacity Increment: 連接池容量在最大容量限制范圍內(nèi)的增量。
* LoginDelay: 在創(chuàng)建每個(gè)物理數(shù)據(jù)庫(kù)連接之前要延遲的秒數(shù)。
* Allow Shrinking: 將該項(xiàng)設(shè)置為true時(shí),如果沒有使用額外的連接,則允許連接池把容量減小到InitialCapacity。
* Shrink Frequency: 在減小連接池容量之前要等待的秒數(shù)。如果將Shrink Frequency設(shè)置為true,那么也必須將Allow Shrinking設(shè)置為true。
* Test Frequency: 數(shù)據(jù)庫(kù)連接測(cè)試之間間隔的秒數(shù)。在每個(gè)Refresh Period時(shí)間間隔之后,如果設(shè)置了TestTableName,就會(huì)使用TestTableName測(cè)試未使用的數(shù)據(jù)庫(kù)連接。
* Test Reserved Connections: 如果選擇了這個(gè)選項(xiàng),服務(wù)器會(huì)在把連接提供給客戶端之前對(duì)其進(jìn)行測(cè)試。
* Test Created Connections: 如果選擇了這個(gè)選項(xiàng),就會(huì)在創(chuàng)建一個(gè)JDBC連接之后和在把它添加到JDBC連接池中的可用連接列表之前,對(duì)該JDBC連接進(jìn)行測(cè)試。
* Test Released Connections: 如果選擇了這個(gè)選項(xiàng),服務(wù)器就會(huì)在把連接返回給連接池之前對(duì)其進(jìn)行測(cè)試。
* Test Table Name: 用于JDBC連接測(cè)試的數(shù)據(jù)庫(kù)表名。如果指定了Test Frequency,并且選擇了Test Reserved Connections、Test Created Connections或Test Released Connections,則Table Name是必需的
連接屬性參數(shù)說明來源于網(wǎng)上,大家從你項(xiàng)目角度設(shè)置
最后別忘記點(diǎn)最下面的APPLY按鈕
我的示例weblogic是8.x,其他版本都同理,找到參數(shù)后即可
進(jìn)入后臺(tái)后,單擊左邊的mydomain—>Services—>JDBC—>Connection Pools
新建我就不說了,在我的文章里面有weblogic的數(shù)據(jù)源連接create
9.x的要解鎖,那就先解鎖。點(diǎn)擊你想設(shè)置的數(shù)據(jù)源的名稱進(jìn)去。進(jìn)去后點(diǎn)擊上面的菜單Connections
看到參數(shù)設(shè)置了吧。
Initial Capacity:100 (初始化容器的連接數(shù))
Maximum Capacity:1000 (容器中最大的連接數(shù)1000,如果超過/還沒到1000就會(huì)報(bào)超出最大連接的錯(cuò)誤,原因你的Oracle安裝數(shù)據(jù)庫(kù)的時(shí)候其池沒設(shè)置大小,現(xiàn)在你也可以設(shè)置。設(shè)置方法:找到Oracle的init.ora文件這個(gè)文件一般在oracle/admin/數(shù)據(jù)庫(kù)SID/pfile里面。找到large_pool_size這一句,把這一句刪除,那就不受限制了。注意:沒受限制的情況下不要調(diào)這個(gè)參數(shù)太大了,35000就OK了,太大的時(shí)候數(shù)據(jù)庫(kù)會(huì)承受不起)
Capacity Increment:15 (一次增加多少個(gè)connection)
Statement Cache Size:50 (緩存大小)
按下下面的Advanced Options "Show",設(shè)置詳細(xì)的配置
下面是JNDI的自動(dòng)回收設(shè)置,比較重要,調(diào)幾個(gè)重要的參數(shù),其他的默認(rèn)
Test Frequency:3600(測(cè)試頻率,這個(gè)會(huì)消耗資源。這個(gè)看你的項(xiàng)目需要,一般代碼寫得比較好的可以設(shè)置長(zhǎng)點(diǎn)時(shí)間)
把下面三個(gè)都打上勾。通過測(cè)試,發(fā)現(xiàn)連接沒關(guān)的就會(huì)被回收(詳細(xì)說明可以看下面的參數(shù)說明)
Test Reserved Connections
Test Created Connections
Test Released Connections
Inactive Connection Timeout:60(無效連接超時(shí)!這個(gè)會(huì)在指定的時(shí)間內(nèi),回收無效連接)
網(wǎng)上有些人說設(shè)置這些參數(shù)后一定的時(shí)間會(huì)出現(xiàn)java.lang.OutOfMemoryError的錯(cuò)誤
解決的方法就是調(diào)大JVM的內(nèi)存,在啟動(dòng)時(shí)對(duì)jvm設(shè)置內(nèi)存限度
通過修改commom\bin\commEnv.cmd文件來增加內(nèi)存分配
修改的部分如下:
:bea
if "%PRODUCTION_MODE%" == "true" goto bea_prod_mode
set JAVA_VM=-jrockit
set MEM_ARGS=-Xms768m -Xmx1024m
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none
goto continue
:bea_prod_mode
set JAVA_VM=-jrockit
set MEM_ARGS=-Xms768m -Xmx1024m//這些看你內(nèi)存定1G的就設(shè)置=-Xms256m -Xmx512m
goto continue
:sun
if "%PRODUCTION_MODE%" == "true" goto sun_prod_mode
set JAVA_VM=-client
set MEM_ARGS=-Xms768m -Xmx1024m -XX:MaxPermSize=256m
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none
goto continue
:sun_prod_mode
set JAVA_VM=-server
set MEM_ARGS=-Xms768m -Xmx1024m -XX:MaxPermSize=256m//這個(gè)就解決了java.lang.OutOfMemoryError的錯(cuò)誤
goto continue
將這里的內(nèi)存分配修改后見效。
連接屬性參數(shù)說明:
* Initial Capacity:創(chuàng)建連接池時(shí)所創(chuàng)建的數(shù)據(jù)庫(kù)連接的數(shù)目。* Maximum Capacity: 連接池中連接的最大數(shù)目。
* Capacity Increment: 連接池容量在最大容量限制范圍內(nèi)的增量。
* LoginDelay: 在創(chuàng)建每個(gè)物理數(shù)據(jù)庫(kù)連接之前要延遲的秒數(shù)。
* Allow Shrinking: 將該項(xiàng)設(shè)置為true時(shí),如果沒有使用額外的連接,則允許連接池把容量減小到InitialCapacity。
* Shrink Frequency: 在減小連接池容量之前要等待的秒數(shù)。如果將Shrink Frequency設(shè)置為true,那么也必須將Allow Shrinking設(shè)置為true。
* Test Frequency: 數(shù)據(jù)庫(kù)連接測(cè)試之間間隔的秒數(shù)。在每個(gè)Refresh Period時(shí)間間隔之后,如果設(shè)置了TestTableName,就會(huì)使用TestTableName測(cè)試未使用的數(shù)據(jù)庫(kù)連接。
* Test Reserved Connections: 如果選擇了這個(gè)選項(xiàng),服務(wù)器會(huì)在把連接提供給客戶端之前對(duì)其進(jìn)行測(cè)試。
* Test Created Connections: 如果選擇了這個(gè)選項(xiàng),就會(huì)在創(chuàng)建一個(gè)JDBC連接之后和在把它添加到JDBC連接池中的可用連接列表之前,對(duì)該JDBC連接進(jìn)行測(cè)試。
* Test Released Connections: 如果選擇了這個(gè)選項(xiàng),服務(wù)器就會(huì)在把連接返回給連接池之前對(duì)其進(jìn)行測(cè)試。
* Test Table Name: 用于JDBC連接測(cè)試的數(shù)據(jù)庫(kù)表名。如果指定了Test Frequency,并且選擇了Test Reserved Connections、Test Created Connections或Test Released Connections,則Table Name是必需的
連接屬性參數(shù)說明來源于網(wǎng)上,大家從你項(xiàng)目角度設(shè)置
最后別忘記點(diǎn)最下面的APPLY按鈕