tomcat配置資料庫連接池
A. Tomcat 資料庫連接池配置
具體出什麼樣的錯?你不貼出來?
配置server.xml
註:我的web在d:\myweb\myapps
首先要將mysql的驅動程序放到d:\myweb\tomcat5\common\lib下面,一定要放".jar"的文件,如是".zip"的文件直接改為.jar即可。
用文本編輯器打開D:\tomcat5\conf\server.xml,找到結束標志,然後在之前加上如下語句:
<Context path="/myapps" docBase="d:\myweb\myapps" debug="0"
reloadable="true" >
<Resource name="jdbc/DBConnection"
auth="Container"
type="javax.sql.DataSource" />
<ResourceParams name="jdbc/DBConnection">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name>maxIdle</name>
<value>3</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>1234</value>
</parameter>
<!-- Class name for mm.mysql JDBC driver -->
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<!-- The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection. mysqld by default closes idle connections after 8 hours.
-->
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/forumdb?autoReconnect=true</value>
</parameter>
</ResourceParams>
</Context>
再次提醒:一定要放在之前!
配置web.xml
web.xml位於d:\myweb\myapps\WEB-INF下,也即是你的WEB里的web.xml。
同樣用文本編輯器打開web.xml,然後加入如下語句(在與之間)
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/DBConnection</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
查一下dbutils api
B. Tomcat數據源和連接池配置怎麼配~~ 小弟快瘋了~~~
這位小同學,不同TOMCAT版本的數據原配置是不一樣的?你用的是tomcat6還是tomcat5?
我給你配吧 我的是tomcat6.0
(1)第一步:在tomcat的配置文件(context.xml)加入資料庫連接信息
<Resource name="jdbc/dataBase1" auth="Container" type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"//你的資料庫驅動程序名字;
url="jdbc:oracle:thin:@192.168.20.90:1521:carddb"你的資料庫URL連接;
username="card"//用戶名
password="password"//密碼
maxActive="20"//連接池的最大資料庫連接數,設為0表示無限制
maxIdle="10"//
maxWait="10000" />
(2)在web.xml中配置引用
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/dataBase1</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
(3)第三部測試代碼
測試代碼:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class DataSourceTest{
public static Connection getCon(){
Connection conn = null;
try{
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/dataBase1");
conn = ds.getConnection();
}catch(NamingException e){
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();
}
return conn;
}
}
C. java中建立資料庫連接池,有哪幾個步驟
Context context=new InitialContext();
DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/"+projectName);這里的projectName指的是你的項目名稱然後在tomcatde 的\conf\Catalina\localhost目錄下配置一個和你項目名稱相同的xml文件文件的配置方法可以去網路下很多的,這樣就可以使用連接池了。
D. 為什麼配置tomcat 資料庫連接池出現如下問題
你沒有設置任何的連接資料庫需要的參數,你可以在server.xml或者context.xml來配置資料庫資源參數
E. 如何在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>
F. tomcat如何配置資料庫連接池,使得連接中斷後自動重連
給你一段代碼,看看對你有沒有幫助:
這是我的tomcatde DHCP的配置
<Resource driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" logAbandoned="true" maxActive="20" maxIdle="2" maxWait="5000" name="system" password="sa" removeAbandoned="true" removeAbandonedTimeout="60" type="javax.sql.DataSource"
url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=base" username="sa"/>
當中的
logAbandoned="true" removeAbandoned="true" removeAbandonedTimeout="60"就是用來配置資料庫斷開後自動連接的。
G. tomcat資料庫連接池,到底如何配置阿...
在下META-INF的context.xml下配置 和修改/conf/server.xml里加Context是一樣的, 有spring配在spring的配置文件里,
簡單給你段配置
<Context path="/apppath" docBase="myapp" debug="0">
<Resource name="jdbc/myDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="userid" password="mypass"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/myDB?autoReconnect="true"
removeAbandoned="true" removeAbandonedTimeout="60"
logAbandoned="true" />
</Context>
外,隨便說句,tomcat配置里默認用的是dbcp,性能並不好;至於用什麼資料庫,換驅動和鏈接串就行了
H. Tomcat配置SQLserver2005資料庫連接池問題
把你在tomcat下的conf/server.xml里添加的東西都刪掉
然後在conf下建一個context.xml文件
加入如下代碼:
<?xml version='1.0' encoding='utf-8'?>
<Context>
<Resource name="jdbc/sqlserver2005"
auth="Container"
type="javax.sql.DataSource"
password="你的伺服器密碼"
username="sa"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;DatabaseName=blog"
maxActive="100" maxIdle="30" maxWait="5000"/>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
最後把sqljdbc.jar放到tomcat的lib下
I. tomcat配置多個資料庫連接池,如何配置
這是配置文件datasource.xml中的配置信息,現在只有一個資料庫配置信息,還可以增加嗎?而且如果這個文件增加配置後其它文件還需要配置嗎?求解答!