Tomcat 5.5.15 和SQLServer2000 SP3基于SQLServer2000JDBC SP3 的連接池配制
一、準備
需要下載:
1. tomcat5.5.15
2. Tomcat5.5.15admin
3. SQLServer2000JDBC SP3或者jtds
安裝tomcat。并添加admin角色和用戶。
將jdbc驅動包放到tomcat_home\common\lib目錄下。
在MyEclipse建立一個新的Web項目。使用剛才配置的tomcat作為服務器。
啟動tomcat。
二、配置
打開tomcat。
登錄 Tomcat Web Server Administration Tool.
點擊左側的Data Sources。
在右側Available Actions下拉菜單中選擇Create New Data Source.
輸入
JNDI Name:
Data Source URL:
JDBC Driver Class:
User Name:
Password:
Max.Active Connections:最大活動連結數 ,0為不限 。
Max.Idle Connections:最大等待連結數 ,0為不限 。
Max.Wait for Connection:建立連接超時時間ms,-1為無限 。
注:使用SQLServer的官方JDBC驅動,Class=com.microsoft.jdbc.sqlserver.SQLServerDriver,URL=jdbc:Microsoft:sqlserver://127.0.0.1:1433;databaseName=aa;使用開源的驅動Jtds,Class=net.sourceforge.jtds.jdbc.sqlserver,URL=jdbc:jtds:sqlserver://127.0.0.1:1433/aa
輸入完畢,點擊“Save”按鈕保存。
點擊頁面右上側“Commit Changes”按鈕,保存剛才的設置。(這一步很重要哦!)
打開tomcat_home\conf\server.xml的< GlobalNamingResources></ GlobalNamingResources>中找到
<Resource
name="jdbc/mydbcp"
type="javax.sql.DataSource"
password="aa"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="aa"
url="jdbc:microsoft:sqlserver://10.0.2.37:1433;databaseName=aa"
maxActive="4"/>
這是JNDI的主要配置文件,可以不使用圖形界面直接寫入server.xml中。
在tomcat_home\webapps\dbcp\ META-INF\context.xml的<context></context>中填入上面的代碼。
如果更改了JNDI,則必須手動更改context.xml。
<Resource
name="mydbcp" 注:此處不同
type="javax.sql.DataSource"
password="aa"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="aa"
url="jdbc:microsoft:sqlserver://10.0.2.37:1433;databaseName=aa"
maxActive="4"/>
和
<ResourceLink
global="jdbc/mydbcp"
name="jdbc/mydbcp"
type="javax.sql.DataSource"/>
重起tomcat。
連接方法:
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/mydbcp");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from systypes");
三、測試
測試實例:test.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="java.sql.*,javax.sql.DataSource,javax.naming.*"%>
<html>
<head>
<title>
tomcat 連接池
</title>
</head>
<body bgcolor="#ffffff">
<h3>
test
<br>
連接池3
</h3>
<%try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/mydbcp");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from systypes");
while (rs.next()) {%>
<br>
<%=rs.getString(1)%>
<%}%>
<%out.print("<br>Successful!成功!!\n");%>
<%rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
out.print("出現例外!" + e.getMessage());
e.printStackTrace();
}
%>
</body>
</html>
四、錯誤
錯誤1:Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver'
是沒有將sql jdbc driver包放在common\lib\目錄下。
錯誤2:Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.)
SQL數據庫補丁包的問題,如果訪問的數據庫是SP3,任何問題沒有。不是SP3就會出現上面的錯誤。
錯誤3:Name mydbcp is not bound in this Context
在context.xml中加入
<ResourceLink
global="jdbc/mydbcp"
name="jdbc/mydbcp"
type="javax.sql.DataSource"/>