連接池怎麼配置
㈠ mysql的數據連接池怎麼配置文件
mysql的數據連接池怎麼配置文件
連接先建立一些連接,並且這些連接允許共享,因此這樣就節省了每次連接的時間開銷。Mysql資料庫為例,連接池在Tomcat中的配置與使用。
1、創建資料庫Student,表student
2、配置server.xml文件。Tomcat安裝目錄下conf中server.xml文件。
<GlobalNamingResources>
<Resource
name="jdbc/DBPool"
type="javax.sql.DataSource"
password=""
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/student"
maxActive="3"
/>
</GlobalNamingResources>
name:指定連接池的名稱
type:指定連接池的類,他負責連接池的事務處理
url:指定要連接的資料庫
driverClassName:指定連接資料庫使用的驅動程序
username:資料庫用戶名
password:資料庫密碼
maxWait:指定最大建立連接等待時間,如果超過此時間將接到異常
maxIdle:指定連接池中連接的最大空閑數
maxActive:指定連接池最大連接數
3、配置web.xml文件。
<web-app>
<resource-ref>
<description>mysql資料庫連接池配置</description>
<res-ref-name>jdbc/DBPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</web-app>
4、配置context.xml文件
與server.xml文件所在的位置相同。
<Context>
<ResourceLink
name="jdbc/DBPool"
type="javax.sql.DataSource"
global="jdbc/DBPool"
/>
</Context>
5、測試
DataSource pool = null;
Context env = null;
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try{
env = (Context)new InitialContext().lookup("java:comp/env");
//檢索指定的對象,返回此上下文的一個新實例
pool = (DataSource)env.lookup("jdbc/DBPool");
//獲得資料庫連接池
if(pool==null){out.printl("找不到指定的連接池!");}
con = pool.getConnection();
st = con.createStatement();
rs = st.executeQuery("select * from student");
}catch(Exception ex){out.printl(ne.toString());}
㈡ weblogic連接池怎麼配置
可能是連接池配置的驅動名稱拼寫有誤或者缺少了資料庫驅動包引起 oracle.jdbc.driver.OracleDriver
㈢ 如何在tomcat裡面配置jdbc連接池
一、連接池配置<bean class="org.apache.tomcat.jdbc.pool.PoolProperties">
<property name="url" value="${jdbcUrl}"/>
<!--資料庫驅動-->
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<!--用戶名-->
<property name="username" value="mysql"/>
<!--密碼-->
<property name="password" value="123456"/>
<!--注冊池JMX,默認:true-->
<property name="jmxEnabled" value="false"/>
<!--檢查連接死活的時間間隔,單位:毫秒-->
<property name="validationInterval" value="30000"/>
<!--指定連接進入空閑狀態時是否經過空閑對象驅逐進程的校驗,如果校驗未通過,則該連接被連接池斷掉
值為true,則validationQuery參數必須為一個非空字串---->
<property name="testWhileIdle" value="false"/>
<!--指定連接返回到池中是時是否經過校驗
值為true,則validationQuery參數必須為一個非空字串---->
<property name="testOnReturn" value="false"/>
<!--指定連接被調用時是否經過校驗,如果校驗未通過,則該連接被連接池斷掉,並由連接池嘗試調用另一個連接
值為true,則validationQuery參數必須為一個非空字串-->
<property name="testOnBorrow" value="true"/>
<!--在連接返回給調用者前用於校驗連接是否有效的SQL語句,如果指定了SQL語句,則必須為一個SELECT語句,且至少有一行結果-->
<property name="validationQuery" value="select 1"/>
<!--連接池處於活動狀態的資料庫連接的最大數目,0表示不限制,表示最大並發-->
<property name="maxActive" value="1000"/>
<!--初始化連接數-->
<property name="initialSize" value="10"/>
<!--連接池中連接用完時,新的請求的等待時間(即等待別的連接空閑),超時返回異常,毫秒-->
<property name="maxWait" value="100000"/>
<!--以毫秒錶示空閑對象驅逐進程由休眠狀態進入運行狀態的數值,值為非正整時表示不運行任何空閑對象驅逐進程
運行判斷連接超時任務的時間間隔-->
<property name="timeBetweenEvictionRunsMillis" value="30000"/>
<!--以毫秒錶示連接被空閑對象驅逐進程驅逐前在池中保持空閑狀態的最小時間,連接的超時時間,默認為半小時-->
<property name="minEvictableIdleTimeMillis" value="30000"/>
<!--連接池檢查每個空閑對象驅逐進程的對象數量
<property name="numTestPerEvictionRun" value="3"/>
-->
<!--連接池處於空閑狀態的資料庫連接的最小數目,低於此數值將會創建所欠缺的連接,設0無限制-->
<property name="minIdle" value="10"/>
<!--連接池處於空閑狀態的資料庫連接的最大數目,取非正整數表示不受限制,超過此數值時多餘的空閑連接將會被釋放-->
<property name="maxIdle" value="200"/>
<!--當清除無效連接時是否在日誌中記錄清除信息的標志-->
<property name="logAbandoned" value="false"/>
<!--是否清除已經超過 removeAbandonedTimeout 設置的無效連接,自動回收超時連接
啟動機制:getNumActive() > getMaxActive() - 3 和 getNumIdle() < 2
假設maxActive=20,而當前18個活動連接,1個空閑連接,機制將會啟動
但是只有在活動連接沒有使用的時長超過「removeAbandonedTimeout」(默認300秒),的連接將被清除-->
<property name="removeAbandoned" value="true"/>
<!--以秒錶示清除無效連接的時限,自我中斷時間,單位秒-->
<property name="removeAbandonedTimeout" value="60"/>
<!--設置攔截器,默認為空
ConnectionState:跟蹤自動提交,只讀目錄和事務隔離級別
StatementFinalizer:跟蹤打開的語句,並關閉連接時的返回到池中
-->
<property name="jdbcInterceptors" value="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"/>
</bean>
㈣ 如何合理設置連接池的大小
客戶端連接池的配置要點。
1) 連接池的大小。單個應用程序中,介面的並發的連接數的1.5倍足夠滿足需求。
2) 保持一定的空閑連接數,這樣可以保證客戶端可快速的獲取連接對象。
3) 合理設置空閑接的回收時間。避免客戶端維持大量的空閑連接。
4) 定時檢查長連接對象的有效性。主要是防止網路抖動或者db端出現異常時主動關閉連接。
㈤ java資料庫連接池配置的幾種方法
資料庫連接池的主要操作如下:
(1)建立資料庫連接池對象(伺服器啟動)。
(2)按照事先指定的參數創建初始數量的資料庫連接(即:空閑連接數)。
(3)對於一個資料庫訪問請求,直接從連接池中得到一個連接。如果資料庫連接池對象中沒有空閑的連接,且連接數沒有達到最大(即:最大活躍連接數),創建一個新的資料庫連接。
(4)存取資料庫。
(5)關閉資料庫,釋放所有資料庫連接(此時的關閉資料庫連接,並非真正關閉,而是將其放入空閑隊列中。如實際空閑連接數大於初始空閑連接數則釋放連接)。
(6)釋放資料庫連接池對象(伺服器停止、維護期間,釋放資料庫連接池對象,並釋放所有連接)。
㈥ ssm框架中怎麼配置資料庫連接池
Druid配置
1.下載jar包:http://repo1.maven.org/maven2/com/alibaba/druid/
2.編寫資料庫連接的資源文件:dbconfig.properties
url:jdbc:mysql://localhost:3306/flm?useUnicode=true&characterEncoding=utf8
driverClassName:com.mysql.jdbc.Driver
username:root
password:root
#------------------------------------------------------------------------------------------
#配置擴展插件 監控統計用filters:stat 日誌用filters:log4j 防禦sql注入用filters:wall
filters:stat
#最大連接池數量 初始化建立物理連接的個數 獲取連接時最長的等待時間 最小連接池數量 maxIdle已經棄用
maxActive:20
initialSize:1
maxWait:60000
minIdle:10
maxIdle:15
#有兩個含義 1.Destroy 線程會檢測連接的時間 2.testWhileIdle的判斷依據
timeBetweenEvictionRunsMillis:60000
#Destory線程中如果檢測到當前連接的最後活躍時間和當前時間的差值大於minEvictableIdleTimeMillis,則關閉當前連接
minEvictableIdleTimeMillis:300000
#用來檢測連接是否的sql,要求是一個查詢語句。在mysql中通常設置為SELECT 'X'
validationQuery:SELECT 'x'
#申請連接的時候檢測,如果空閑時間大於timeBetweenEvictionRunsMillis,執行validationQuery連接是否有效
testWhileIdle:true
#申請連接時執行validationQuery檢測連接是否有效 這個配置會降低性能
testOnBorrow:false
#歸還連接時執行validationQuery檢測連接是否有效 這個配置會降低性能
testOnReturn:false
#要啟用PSCache,必須配置大於0,當大於0時,poolPreparedStatements自動觸發修改為true
maxOpenPreparedStatements:20
#對於建立連接超過removeAbandonedTimeout的連接強制關閉
removeAbandoned:true
#指定連接建立多長就被強制關閉
removeAbandonedTimeout:1800
#指定發生removeabandoned時,是否記錄當前線程的堆棧信息到日誌中
logAbandoned:true
04142434445460414243444546
3.在Spring配置文件ApplicationContext.xml中載入資源文件進來
<!--PropertyPlaceholderConfigurer是個bean工廠後置處理器的實現,也就是 BeanFactoryPostProcessor介面的一個實現。PropertyPlaceholderConfigurer可以將上下文(配置文 件)中的屬性值放在另一個單獨的標准java Properties文件中去。-->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/classes/dbconfig.properties</value> <!--dbconfig.properties 資料庫連接信息-->
</list>
</property>
</bean> 1234567812345678
4.在Spring配置文件ApplicationContext.xml中配置阿里數據連接池Druid
<!-- 阿里 druid資料庫連接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
<!-- 資料庫基本信息配置 -->
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<property name="driverClassName" value="${driverClassName}" />
<property name="filters" value="${filters}" />
<!-- 最大並發連接數 -->
<property name="maxActive" value="${maxActive}" />
<!-- 初始化連接數量 -->
<property name="initialSize" value="${initialSize}" />
<!-- 配置獲取連接等待超時的時間 -->
<property name="maxWait" value="${maxWait}" />
<!-- 最小空閑連接數 -->
<property name="minIdle" value="${minIdle}" />
<!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
<!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
<property name="validationQuery" value="${validationQuery}" />
<property name="testWhileIdle" value="${testWhileIdle}" />
<property name="testOnBorrow" value="${testOnBorrow}" />
<property name="testOnReturn" value="${testOnReturn}" />
<property name="maxOpenPreparedStatements" value="${maxOpenPreparedStatements}" />
<!-- 打開removeAbandoned功能 -->
<property name="removeAbandoned" value="${removeAbandoned}" />
<!-- 1800秒,也就是30分鍾 -->
<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />
<!-- 關閉abanded連接時輸出錯誤日誌 -->
<property name="logAbandoned" value="${logAbandoned}" />
</bean>
