Tomcat4+jdk+db2连接池实现

原创 2005年04月25日 10:02:00

 1 配置数据源

如果我们要部署的是个WEB应用程序,我们将该应用程序放在TOMCAT_HOME/webapps目录下,有两种方式可以引用我们所配置的JNDI数据源。

A:可以在TOMCAT_HOME/conf/Catalina/localhost下新建XXX.xml文件,XXX为所发布的WEB应用的名字,如我所发布的WEB应用是JndiTest,.xml文件命名为JndiTest.xml在该文件内加:

如我所发布的WEB应用是test,.xml文件命名为test.xml在该文件内加:

<?xml version='1.0' encoding='utf-8'?>
<Context path="/test" docBase="E:/Java/tomcat/webapps/test" debug="0"
                 reloadable="true" crossContext="true">                  
        <Environment name="maxExemptions" type="java.lang.Integer"
                      value="15"/>
        <Parameter name="context.param.name" value="context.param.value"
                     override="false"/> 

  <Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource"/>
        <ResourceParams name="jdbc/mydb">
 <parameter>
  <name>factory</name>
  <!-- <value>com.ibm.db2.jcc.DB2SimpleDataSource</value>-->
   <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
 
 </parameter>
 <parameter>
  <name>driverClassName</name>
  <value>COM.ibm.db2.jdbc.net.DB2Driver</value>
 </parameter>
 <parameter>
  <name>url</name>
  <value>jdbc:db2://localhost:6789/alisi</value>
 </parameter>
 <parameter>
  <name>username</name>
  <value>hain</value>
 </parameter>
 <parameter>
  <name>password</name>
  <value>bi2003</value>
 </parameter>
 <parameter>
  <name>maxActive</name>
  <value>20</value>
 </parameter>
 <parameter>
  <name>maxIdle</name>
  <value>10</value>
 </parameter>
 <parameter>
  <name>maxWait</name>
  <value>-1</value>
 </parameter>
</ResourceParams>
</Context>
其中E:/Java/tomcat/webapps/test为你所发布应用程序的目录,这样就可以进行测试了。
这样做就是每个WEB应用程序都须创建一个象test.xml这样的文件。

B 为了避免每个WEB应用程序都创建XXX.xml文件,我们可以修改TOMCAT_HOME/conf下的server.xml文件,修改如下:

在之间加入:
<Context path="/test" docBase="E:/Java/tomcat/webapps/test" debug="0"
                 reloadable="true" crossContext="true">                  
        <Environment name="maxExemptions" type="java.lang.Integer"
                      value="15"/>
        <Parameter name="context.param.name" value="context.param.value"
                     override="false"/> 

  <Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource"/>
        <ResourceParams name="jdbc/mydb">
 <parameter>
  <name>factory</name>
  <!-- <value>com.ibm.db2.jcc.DB2SimpleDataSource</value>-->
   <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
 
 </parameter>
 <parameter>
  <name>driverClassName</name>
<!--<value>COM.ibm.db2.jdbc.app.DB2Driver</value>-->
<value>COM.ibm.db2.jdbc.net.DB2Driver</value>
 </parameter>
 <parameter>
  <name>url</name>
<!--<value>jdbc:db2:TEXT</value>-->
<value>jdbc:db2://localhost:6789/alisi</value>
 </parameter>
 <parameter>
  <name>username</name>
  <value>ha</value>
 </parameter>
 <parameter>
  <name>password</name>
  <value>2005</value>
 </parameter>
 <parameter>
  <name>maxActive</name>
  <value>20</value>
 </parameter>
 <parameter>
  <name>maxIdle</name>
  <value>10</value>
 </parameter>
 <parameter>
  <name>maxWait</name>
  <value>-1</value>
 </parameter>
</ResourceParams>
</Context>
2 注意要在每个WEB应用程序的web.xml文件中都加入(不是必须的)
<resource-ref>
 <description>db2 Datasource example</description> <res-ref-name>jdbc/mydb</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
</resource-ref>
3 测试代码

编写index.jsp文件:

<%@ page contentType="text/html;charset=GBK"%>
<%@ page import= "java.sql.* "%>
<%@ page import= "javax.naming.* "%>
<%@ page import= "javax.sql.* "%>
Hi,
<%
 try{
 Context initCtx = new InitialContext();
 Context ctx = (Context) initCtx.lookup("java:comp/env"); //获取连接池对象
 Object obj = (Object) ctx.lookup("jdbc/mydb"); //类型转换
 javax.sql.DataSource ds = (javax.sql.DataSource)obj;
 Connection conn = ds.getConnection();
 Statement stmt = conn.createStatement();

 String strSql = "Select * from tb_AREA_TABLE";
 ResultSet rs = stmt.executeQuery(strSql);
 while(rs.next()){ out.println(rs.getString(1));
 out.println(rs.getString(2));
}
}
catch(Exception ex)
{ System.out.println("ERRRR:"+ex);
}%>

在IE里面输入http://127.0.0.1:8080/test/如果能显示出数据则配置成功

4 配置说明:
<Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource"/>

Resource项(即连接池的DataSource对象),有3个属性name、auth、type,name项是JNDI的名称定义,程序通过JNDI才能找到此对象,这里取名jdbc/mydb;auth项即连接池管理权属性,这里取值Container,申明为容器管理;type项即对象的类型,这里取值javax.sql.DataSource,申明为数据库连接池
在接下来的<ResourceParams>域内容里包含四个参数user、password、driverClassName、driverName,依次为数据库的用户名、密码、JDBC驱动和数据库地址。
用户名、密码是为访问数据库准备的,取连接数据库的用户名和密码。
driverClassName即数据库的JDBC驱动名称,JDBC驱动包名叫db2java.zip,一般位于DB2安装目录下的IBM/SQLLIB/java目录下,初始扩展名为ZIP,并放到common/lib下。这里又2种取值COM.ibm.db2.jdbc.net.DB2Driver和COM.ibm.db2.jdbc.app.DB2Driver
接下来是即url,即数据库的地址
jdbc:db2://localhost:6789/masa_239和jdbc:db2:TEXT

在这里填写里的是db2的访问地址

接下来有三个参数,均为连接数相关,如下:
<parameter>
 <name>maxActive</name>
 <value>20</value>
</parameter>
<parameter>
 <name>maxIdle</name>
 <value>10</value>
</parameter>
<parameter>
 <name>maxWait</name>
 <value>-1</value>
</parameter>

maxActive是最大激活连接数,这里取值20个,表示同时最多有20个与数据库的连接。
maxIdle是最大空闲连接数,这里取值10个,表示即使没有连接请求时,依然可以保持10空闲的连接,而不被清除,随时处于待命状态。关于对象的状态,有兴趣的朋友可以看看EJB方面的资料。
maxWait是最大等待秒钟数,这里取值-1,表示无限等待,直到超时为止,也可以取值9000,即表示9秒后超时。
关于maxActive与maxIdle的一点建议,对于企业级应用,其两者的值一般比较接近,或者相同,关键是要分析应用的大小。

db2jcc4.jar下载(jdk1.8测试可用)

  • 2017年11月03日 10:50
  • 3.66MB
  • 下载

tomcat6配置DB连接池

1.更改Tomcat 6.0\conf下的context.xml文件
  • yyw6637
  • yyw6637
  • 2013年04月11日 16:29
  • 347

DB2递归实现字符串分组连接操作

db2中的递归查询使用with来实现,也称为公共表达式,公共表达式在select语句的开始部分采用with子句的形式,在使用公共表达式的查询中可以多次使用它,并且公共表达式还可以通过取别名来连接到他本...

DB2 4节点DPF环境搭建;循环日志修改为归档日志方式 .

环境:AIX5.1  DB2 V8.2 是个测试环境,有机会安装,做个记录 ------------- DB2 介质已经安装完成,只需要创建实例,建库 ------------- ******...

db2视图4 例子

SET SCHEMA EDWDBA; SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","EDWDBA"; CREATE VIE...

log4net输出到IBM DB2问题解决记录

Apache网站上有详细的配置示例: http://logging.apache.org/log4net/release/config-examples.html 包括输出到各种数据库的Append...

DB2 4节点DPF环境搭建;循环日志修改为归档日志方式

环境:AIX5.1  DB2 V8.2 是个测试环境,有机会安装,做个记录 ------------- DB2 介质已经安装完成,只需要创建实例,建库 ------------- ******...

Toad for DB2 4_7 - Release Notes.htm

  • 2012年10月16日 12:45
  • 167KB
  • 下载

DB2_X32.part4.rar

  • 2016年12月17日 12:49
  • 69MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Tomcat4+jdk+db2连接池实现
举报原因:
原因补充:

(最多只允许输入30个字)