Tomcat6.0 连接池的配置
2011-07-11 15:31
423 查看
1.本人当前使用的Tomcat版本为:6.0,oracle为稳定的10g版本
2.下文为方便起见,依习惯以%Tomcat_Home%表示Tomcat安装的目录,本人安装目录为“D:\Tomcat 6.0”
配置步骤如下:
1.Tomcat 6的配置和以前的不同了,不推荐在server.xml中进行配置,而是在%Tomcat_Home%\webapps\yourApp\META-INF \context.xml中进行配置才是更好的方法。而不是以前版本%Tomcat_Home%\conf下的context.xml文件。这样就可以在不同的web应用下单独配置连接池了,且Tomcat会自动重载。当然你也可以更改%Tomcat_Home%\conf下的context.xml文件,将所有web应用下的连接池进行统一配置。
2.将代码修改如下:
<Context reloadable="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/OracleDB" auth="Container" type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="psun"
password="psun"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:ORA"/>
</Context>
name 为当前数据源JNDI的名字,可以随意设定;
auth 为验证方式;
type 资源类型;
driverClassName 为Oracle驱动引用;
maxActiv 为连接池最大激活的连接数,设为0表示无限制;
maxIdle 为连接池最大空闲的连接数,数据库连接的最大空闲时间。超过空闲时间,
数据库连接将被标记为不可用,然后被释放。设为0表示无限制;
maxWait 为连接最大的等待时间,单位毫秒,如果超过此时间将接到异常。设为-1
表示无限制。;
username 为oracle数据库的一个用户名;
password 为username的密码;
url 为连接oracle的连接地址;
3.在程序中的调用形式为:
java:comp/env 为固定开头
4.另外还需将用到的jdbc驱动类库导入到%Tomcat_Home%\lib目录下
否则会抛出如下异常:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
依上述步骤就能成功的配置Tomcat6.0 连接池,如果还不行,配置一下 web.xml。
在web.xml文件中的web-app节点下加入如下代码形式:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/OracleDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
启动tomcat,成功运行,呵呵
---------------------------------------------------------------------------
把tomcat拷贝到那台机器,并且修改META-INF\context.xml,然后重新启动tomcat,但发现系统连接的仍然是老的db。再次检查了META-INF\context.xml文件,确信了这个文件已经正确设置db连接了,这也说明这个文件并没有真正起作用。查看了tomcat下conf\context.xml也没有设置db的连接池。那是哪个文件在起作用呢?折腾了办法,后来发现tomcat在conf\Catalina\localhost下生成了一个和原来META-INF\context.xml相同内容的文件,怀疑一定是这个文件在起作用?删除conf\Catalina\localhost目录,重启tomcat,问题消失。
参考【http://www.blogjava.net/gm_jing/articles/308828.html】的blog
2.下文为方便起见,依习惯以%Tomcat_Home%表示Tomcat安装的目录,本人安装目录为“D:\Tomcat 6.0”
配置步骤如下:
1.Tomcat 6的配置和以前的不同了,不推荐在server.xml中进行配置,而是在%Tomcat_Home%\webapps\yourApp\META-INF \context.xml中进行配置才是更好的方法。而不是以前版本%Tomcat_Home%\conf下的context.xml文件。这样就可以在不同的web应用下单独配置连接池了,且Tomcat会自动重载。当然你也可以更改%Tomcat_Home%\conf下的context.xml文件,将所有web应用下的连接池进行统一配置。
2.将代码修改如下:
<Context reloadable="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/OracleDB" auth="Container" type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="psun"
password="psun"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:ORA"/>
</Context>
name 为当前数据源JNDI的名字,可以随意设定;
auth 为验证方式;
type 资源类型;
driverClassName 为Oracle驱动引用;
maxActiv 为连接池最大激活的连接数,设为0表示无限制;
maxIdle 为连接池最大空闲的连接数,数据库连接的最大空闲时间。超过空闲时间,
数据库连接将被标记为不可用,然后被释放。设为0表示无限制;
maxWait 为连接最大的等待时间,单位毫秒,如果超过此时间将接到异常。设为-1
表示无限制。;
username 为oracle数据库的一个用户名;
password 为username的密码;
url 为连接oracle的连接地址;
3.在程序中的调用形式为:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <%@ page import="java.sql.*, javax.sql.*, com.sp.db.*, javax.naming.*;" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> This is my JSP page. <br><hr/> <% InitialContext initCtx = new InitialContext(); DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/OracleDB"); Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from students"); while(rs.next()){ //System.out.println(rs.getString(2)); out.print(rs.getString(2)); out.print("<br>"); } rs.close(); stmt.close(); conn.close(); %> </body> </html>注:“java:comp/env/jdbc/OracleDB”红色标记文字为步骤1里设置的Resource name。
java:comp/env 为固定开头
4.另外还需将用到的jdbc驱动类库导入到%Tomcat_Home%\lib目录下
否则会抛出如下异常:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
依上述步骤就能成功的配置Tomcat6.0 连接池,如果还不行,配置一下 web.xml。
在web.xml文件中的web-app节点下加入如下代码形式:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/OracleDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
启动tomcat,成功运行,呵呵
---------------------------------------------------------------------------
把tomcat拷贝到那台机器,并且修改META-INF\context.xml,然后重新启动tomcat,但发现系统连接的仍然是老的db。再次检查了META-INF\context.xml文件,确信了这个文件已经正确设置db连接了,这也说明这个文件并没有真正起作用。查看了tomcat下conf\context.xml也没有设置db的连接池。那是哪个文件在起作用呢?折腾了办法,后来发现tomcat在conf\Catalina\localhost下生成了一个和原来META-INF\context.xml相同内容的文件,怀疑一定是这个文件在起作用?删除conf\Catalina\localhost目录,重启tomcat,问题消失。
参考【http://www.blogjava.net/gm_jing/articles/308828.html】的blog
相关文章推荐
- Tomcat 6.0 配置oracle数据库连接池
- tomcat 6.0配置oracle数据库连接池
- Tomcat6.0连接池配置
- Tomcat6.0 连接池的配置_oracle
- 怎样配置Tomcat6.0的数据库连接池详解
- Tomcat6.0 连接池配置
- Tomcat6.0连接池配置
- Tomcat 6.0 配置oracle数据库连接池
- Java数据库连接-JNDI方式- 配置Tomcat6.0 连接池
- Tomcat 6.0 配置oracle数据库连接池
- Tomcat6.0连接池配置(oracle)
- TomCat6.0+oracle数据库连接池配置(转贴:冷千山的BLOG)
- Tomcat6.0连接池配置
- 怎样配置Tomcat6.0的数据库连接池详解
- Java数据库连接-JNDI方式- 配置Tomcat6.0 连接池
- Tomcat6.0连接池配置
- tomcat6.0 + JSP + mysql数据库连接池配置
- tomcat中的几种连接池配置代码(包括tomcat5.0,tomcat5.5x,tomcat6.0)
- Tomcat6.0配置连接池连接SQL Server 2008数据库
- Tomcat 6.0 配置oracle数据库连接池