如先前
提到的,tomcat从4.0版本开始支持连接池机制。下面对5.5版本的配置方法简要说
明:
环境:
FC4
tomcat 5.5.16
oracle 10.2.0.1
1、为tomcat增加支持oracle的jdbc库
cp /oracle/oracle/product/10.2.0/db_1/jdbc/l ib/* /usr/local/tomcat5/common/lib
2、更新tomcat服务器配置文件
注意:tomcat 5.5不再支持ResourceParams节。
在GlobalNamingResources节中加入一个全局资源定义:
<Resource name="jdbc/testdb-pool" auth="Container" type="javax.sql.DataSource"
maxActive="10" maxIdle="5" maxWait="-1"
username="testuser" password="testpasswd" driverClassName="oracle.jdbc.driver.Orac leDriver"
url="jdbc:oracle:thin:@localhost:1521:or cl"/>
在需要这个资源定义的上下文中引用它,这样这个Context就变成:
<Context path="/myapp" docBase="/var/www/myapp" debug="0" reloadable="true">
<ResourceLink name="jdbc/testdb-pool" global="jdbc/testdb-pool" type="javax.sql.DataSource"/>
</Context>
3、更新应用配置文件
在应用的WEB-INF/web.xml文件中添加如下资源引用声明:
<resource-ref>
<res-ref-name>jdbc/testdb-pool</res-re f-name>
<res-type>javax.sql.DataSource</res-ty pe>
<res-auth>Container</res-auth>
</resource-ref>
4、重新启动tomcat
5、测试
以下是这个测试JSP文件的核心内容:
环境:
FC4
tomcat 5.5.16
oracle 10.2.0.1
1、为tomcat增加支持oracle的jdbc库
cp /oracle/oracle/product/10.2.0/db_1/jdbc/l
2、更新tomcat服务器配置文件
注意:tomcat 5.5不再支持ResourceParams节。
在GlobalNamingResources节中加入一个全局资源定义:
<Resource name="jdbc/testdb-pool" auth="Container" type="javax.sql.DataSource"
maxActive="10" maxIdle="5" maxWait="-1"
username="testuser" password="testpasswd" driverClassName="oracle.jdbc.driver.Orac
url="jdbc:oracle:thin:@localhost:1521:or
在需要这个资源定义的上下文中引用它,这样这个Context就变成:
<Context path="/myapp" docBase="/var/www/myapp" debug="0" reloadable="true">
<ResourceLink name="jdbc/testdb-pool" global="jdbc/testdb-pool" type="javax.sql.DataSource"/>
</Context>
3、更新应用配置文件
在应用的WEB-INF/web.xml文件中添加如下资源引用声明:
<resource-ref>
<res-ref-name>jdbc/testdb-pool</res-re
<res-type>javax.sql.DataSource</res-ty
<res-auth>Container</res-auth>
</resource-ref>
4、重新启动tomcat
5、测试
以下是这个测试JSP文件的核心内容:
<%@ page contentType="text/html; charset=GBK"%> <%@ page import="java.sql.*, javax.naming.*"%> <% try { Context initCtx = new InitialContext(); Context ctx = (Context) initCtx.lookup("java:comp/env"); Object obj = (Object) ctx.lookup("jdbc/testdb-pool"); javax.sql.DataSource ds = (javax.sql.DataSource)obj; Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY); String strSQL = "SELECT * FROM emp"; ResultSet rs = stmt.executeQuery(strSQL); %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> ... </html> <% rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); throw e; } %>