Tomcat 6下配置使用Proxool的JNDI 鏈接池

tomcat自帶的JNDI鏈接池挺糟糕的,開發時用用還行,生產環境最好仍是換成比的成熟一些的鏈接池,好比Proxool就不錯,用它作過好幾個項目,不是通常的穩定。 java

下面講述一下如何在tomcat 6下配置Proxool的JNDI鏈接池。

環境 mysql


o/s:ubuntu 9.04
tomcat:6.0.18
jdk:2.6.28-13-generic
proxool:0.9.1


1.複製 proxool


proxool-0.9.1.jar
proxool-cglib.jar
commons-logging-1.0.4.jar

複製到<tomcat_home>/lib目錄下


2.修改<tomcat_home>/conf/context.xml
打開

<tomcat_home>/conf/context.xml


在標籤

<context>
</congext>

加入下面的內容

  <Resource      name="jdbc/jndidb"      auth="Container"      type="javax.sql.DataSource"      factory="org.logicalcobwebs.proxool.ProxoolDataSource"      proxool.alias="hrs"      user="root"      password="jim"      delegateProperties="foo=bar"      proxool.driver-url="jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=UTF-8"      proxool.driver-class="com.mysql.jdbc.Driver"      proxool.house-keeping-sleep-time="900000"      proxool.maximum-active-time="5"      proxool.prototype-count="10"      proxool.statistics="1m,15m,1d"      proxool.simultaneous-build-throttle="10"      proxool.minimum-connection-count="5"      proxool.maximum-connection-count="25"      proxool.house-keeping-test-sql="select now()"      proxool.test-before-use="true"/>  


3.修改<tomcat_home>/conf/web.xml
打開

<tomcat_home>/conf/context.xml


ok,配置完成,下面寫個簡單的servlet測試一下

4.測試用的 servlet
代碼以下

  package com.demo;    import java.io.IOException;  import java.io.PrintWriter;    import javax.naming.Context;  import javax.naming.InitialContext;  import javax.naming.NamingException;  import javax.servlet.ServletException;  import javax.servlet.http.HttpServlet;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;  import javax.sql.DataSource;    public class DemoServlet extends HttpServlet {     private static final long serialVersionUID = -911762482064261559L;     @Override   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {    PrintWriter out = resp.getWriter();       Context ctx;    try {     ctx = new InitialContext();     DataSource dataSource = (DataSource)ctx.lookup("java:comp/env/jdbc/jndidb");     if (dataSource != null){      out.println(dataSource.getClass());     }else{      out.println("jndi configure failure!");     }    } catch (NamingException e) {     e.printStackTrace();    }     }  }
相關文章
相關標籤/搜索