TOMCAT 5.0.28设置MSSQL2000数据连接池(一),完全测试通过

MSSQL SERVER 2000为例子,查了下网上的资料,很多种说法,因此归纳了下,完全通过测试。

我用的是TOMCAT 5.0.28,搭配MSSQL SERVER 2000

1
修改TOMCAT conf目录下的server.xml,<HOST></HOST>之间加入

<Context path="/TESTLOG" docBase="C:/Tomcat5.0/webapps/TESTLOG" debug="0" crosscontext="true" reloadable="true">

<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/TestDB">

  <parameter>

  <name>factory</name>

  <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

  </parameter>

  <parameter>

  <name>username</name>

  <value>sa</value>

  </parameter>

  <parameter>

  <name>password</name>

  <value>naughtname</value>

  </parameter>

  <parameter>

  <name>driverClassName</name>

  <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>

  </parameter>

  <parameter>

  <name>url</name>

  <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ONLINE;SelectMethod=Direct</value>

  </parameter>

  <parameter>

  <name>maxActive</name>

  <value>20</value>

  </parameter>

  <parameter>

  <name>maxIdle</name>

  <value>5</value>

  </parameter>

  <parameter>

  <name>maxWait</name>

  <value>10000</value>

  </parameter>

  </ResourceParams>

</Context>

 

部分解释如下:

testmysql是为了测试而放在weapps下的一个目录服务。

 

jdbc/TestDB:调用的连接句柄名称


maxActive="100"
:最大活跃连接数,这里取值为100,表示同时最多有100个数据库连接。设为0表示无限制。-->

maxIdle="30"
:最大的空闲连接数,这里取值为30,表示即使没有数据库连接时依然可以保持30个空闲的连接,而不被清除,随时处于待命状态。设为0表示无限制。


maxWait="10000"
:最大建立连接等待时间。如果超过此时间将接到异常。这里设置为10000,表示10秒后超时。设为-1表示无限制,直到超时为止。

com.microsoft.jdbc.sqlserver.SQLServerDriver
:数据库连接字符串

username:数据库连接的用户名

 

passward:数据库连接的密码


注意:如果最大数据库活跃连接数过大,可想而知,内存占用量是非常惊人的!如果空闲连接数过大,则资源利用率低,连接池长期未释放,可导致连接池结点异常。所以选好maxActivemaxIdle是连接池性能的关键因素,当然这取决于服务器环境。

2
然后再在web.xml下如下配置
<resource-ref>
  <res-ref-name>TestDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>
注意,这里的TestDB(名称)要和你在server.xml里设置的<ResourceParams name="jdbc/TestDB">
名称一样。

 

3测试程序如下:
<%
try{
  Context initContext = new InitialContext();
  Context envContext  = (Context)initContext.lookup("java:comp/env");
  DataSource ds = (DataSource)envContext.lookup("jdbc/TestDB");
  Connection conn = ds.getConnection();
  Statement stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery("SELECT * FROM testmysql");
   out.println("User-list"+"<br>");
    while(rs.next()){ 
       out.print(rs. getString(1)+" ");   //
此处注意读数据表时的表字段类型
      out.print(rs.getString(2)+"<br>");
    }
    rs.close();
    stmt.close(); 
    conn.close();}
  catch(Exception e){
     out.print(e);
  }
%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值