您的位置:首页 > 运维架构 > Tomcat

Tomcat的连接池配置

2011-10-07 17:27 369 查看
其实Tomcat的连接池配置并不是很难,但也花费了我一些时间。今天,终于搞定,希望将经验分享出来,能给未解决问题的朋友提供帮助。
这里我的Tomcat版本为5.0.28,这个版本应该说是Tomcat比较稳定的一个版本。
首先备份你的$TomcatHome$/conf/server.xml文件($TomcatHome$是指你的tomcat安装路径),然后在<Host>节点下添加:

<Context path="/pool" docBase="pool">

<Resource color=#ff0000>jdbc/test" scope="Shareable" type="javax.sql.DataSource"/>

<ResourceParams color=#ff0000>jdbc/test">

<parameter>

<name>factory</name>

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

</parameter>

<!-- DBCP database connection settings -->

<parameter>

<name>url</name>

<value>jdbc:jtds:sqlserver://localhost:1433;DatabaseName=pubs</value>

</parameter>

<parameter>

<name>driverClassName</name>
<value>net.sourceforge.jtds.jdbc.Driver</value>

</parameter>

<parameter>

<name>username</name>

<value>sa</value>

</parameter>

<parameter>

<name>password</name>

<value>sa</value>

</parameter>

<!-- DBCP connection pooling options -->

<parameter>

<name>maxWait</name>

<value>3000</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>100</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>10</value>

</parameter>

</ResourceParams>

</Context>

其中红色部分是你需要修改的。
<Context path="/pool" docBase="pool">这里的pool是指你的项目在tomcat发布目录webapps下的目录路径,这里我的项目目录为:.../webapps/pool

<Resource color=#ff0000>jdbc/test"..>jdbc/test为需要通过jndi调用的数据源名称。

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>这里我们用的是dbcp连接池包,这是apache提供的一个免费开源连接池,而且效率和稳定性都不错。如果你使用的是tomcat5x或以上的版本,可以在$TomcatHome$/common/lib目录下找到它。

关于数据库的设置,这里就不在多说。

下面打开web.xml文件,在其根节点下添加数据源的引用设置。

<resource-ref>

<res-ref-name>jdbc/test</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

最后我们在代码中从连接池获得Connection对象。

Context context = new InitialContext();
//获得数据源
DataSource ds = context.lookup("java:comp/env/jdbc/test");
//获取连接
Connection conn = ds.getConnection();

这样我们就在代码中获得了Connection对象,至于剩下的操作,就完全是jdbc操作了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: