Tomcat下配置SQLServer連接池的實(shí)現(xiàn)方法
SQLServer連接池應(yīng)該如何配置呢?這是很多人都問過的問題,下面就為您詳細(xì)介紹SQLServer連接池配置的方法步驟,供您參考。
一.在tomcat_home\common下放入jdbc的三個驅(qū)動程序(一定要的哦),可以在微軟的網(wǎng)站上去下載,安裝的SQLSERVER2k默認(rèn)的用戶名是sa,密碼是空,但密碼為空并不代表沒有密碼,所以你的url中一定要定義username和 password,最好是重設(shè)定一下密碼
二.出現(xiàn)不能引用錯誤的話一般就是路徑?jīng)]有寫對,tomcat默認(rèn)的路徑是tomcat_home\webapps\不過使用5.5.x的話,按下面方法就行,不需要配置路徑,而且也不用在youwebapp\WEB-INF\web.xml文件配置引用
三. tomcat5.5.x版的server.xml配置與tomcat5.0的配置不同,下面列舉三種在tomcat5.5.x的配置方法,如果配置不正確會出現(xiàn)javax.naming.NameNotFoundException: Name is not bound in this Context 錯誤
方式一、全局?jǐn)?shù)據(jù)庫連接池
1、通過管理界面配置連接池,或者直接在tomcat\conf\server.xml的GlobalNamingResources中增加
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
2、在tomcat\webapps\myapp\META-INF\context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
這樣就可以了。
方式二、全局?jǐn)?shù)據(jù)庫連接池
1、同上
2、在tomcat\conf\context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
方式三、局部數(shù)據(jù)庫連接池
只需在tomcat\webapps\myapps\META-INF\context.xml的Context中增加:
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
參數(shù)說明:
driveClassName:JDBC驅(qū)動類的完整的名稱;
maxActive:同時能夠從連接池中被分配的可用實(shí)例的最大數(shù);
maxIdle:可以同時閑置在連接池中的連接的最大數(shù);
maxWait:最大超時時間,以毫秒計(jì);
password:用戶密碼;
url:到JDBC的URL連接;
user:用戶名稱;
validationQuery:用來查詢池中空閑的連接。
以上三種方式在tomcat 5.5.4下都可以。另外,sql server的jdbc driver是從微軟網(wǎng)站上下載的sql server jdbc (sp3)。
四. 報(bào)錯org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.)此是一個小問題,因?yàn)槲业腟QLSERVER2K的服務(wù)改成手動的,所以每次啟動后就要手動的啟動SQLSERVER2K,由于一下子不記的啟動了,所以報(bào)些錯誤,所以如果你經(jīng)常要用到SQLSERVER2K的話,最好不要將其改為手動啟動。
【編輯推薦】
SQLServer級聯(lián)刪除的實(shí)現(xiàn)