`

Tomcat连接池原理讨论

阅读更多

 1.用户释放连接后,连接被回收到连接池,这个连接仍然是可用的。
如果一个连接等待了一段时间(连接池的最大空闲时间,可设置)仍然没有
人来请求连接,那么它将被彻底释放。当然,如果连接池中的连接个数已经
等于连接池的最小连接数(可设置),那么它不会被释放。

2.以tomcat连接池为例,tomcat启动后,假设我设置的最小连接数为5,那么这时候(此Tomcat下的程序没有启动)Tomcat是否和后台地数据库建立5条连线(session)呢?答案:不是.

3.我们的分歧点:注意第一点说的"用户释放连接后",什么叫用户释放连接,我把操作地页面关掉,还是在程序里调用conn.close,如果我在程序里面手动地close,那么我关闭的是连接池里的连接吗,还是把连接还给连接池,也就是说,我手动close连接是否有必要呢?

 

必须显式调用close()方法,包括Connection,ResultSet,Statement,PreparedStatement的。


对,tomcat文档中有这一说。对于那些没有主动close的con,dbcp也会除理,通过配置:

Java代码 复制代码
  1. <parameter>   
  2.               <name>removeAbandoned</name>   
  3.               <value>true</value>   
  4.             </parameter>  
<parameter>
              <name>removeAbandoned</name>
              <value>true</value>
            </parameter>

连接池都有超时的设置,只要不是主动关闭的,到了超时状态就会回收. 
不过还是主动好.因为可以控制是什么时候释放了.. 
flyisland 写道
首先自己要想清楚,为什么要使用连接池,就不需要问这样的问题了。 连接池最基本的目的: 1、重用连接,节省连接资源; 2、免去建立连接操作,提高效率 所以: 1、connection.close当然不会关闭实际连接,只是归还连接池! 2、如果等待系统自动回收connection,也就是说即使你不使用连接也不让别人用,那还要连接池来干嘛?!
同意flyisland的观点,再有一点点补充。 个人觉得不同的连接池实现都有自己的考虑,但会遵循一些基本规则: 比如楼主列出的 第一点:既要保持一定数量的连接供使用,同时要防止存在很多空闲的连接,浪费资源。 第二点:至于系统启动时,是否需要同步创建最小连接数的连接呢,还是等到有需要时再创建连接?这就取决于实现者的选择了。我个人认为后者比较合适,当然如果有特殊要求的除外。 另外,还有如:connection.close不会关闭实际连接,只是归还连接池!等等...

 

原贴:http://www.iteye.com/topic/5347

分享到:
评论

相关推荐

    Tomcat5.5连接池配置案例

    本案例聚焦于Tomcat 5.5版本的连接池配置,通过一个具体的JSP项目来展示如何设置和使用连接池。下面我们将详细讲解这个过程。 一、连接池概念 连接池是预创建并管理一定数量的数据库连接,当应用程序需要连接时,...

    DBCP连接池原理分析

    ### DBCP连接池原理分析 #### DBCP概述与版本区分 DBCP(Database Connection Pool)是由Apache组织提供的一款开源连接池实现。它能够帮助应用程序有效地管理与数据库的连接资源,通过重用预创建的数据库连接来...

    JSP数据库连接池连接实例

    下面,我们将详细讨论JSP中数据库连接池的实现、工作原理以及如何实例化。 1. **数据库连接池概念**: 数据库连接池是在应用服务器启动时创建的一组预设的数据库连接。这些连接在应用需要时被复用,而不是每次请求...

    连接池大小调优Java开发Java经验技巧共8页.pdf

    1. **连接池原理**:连接池的基本概念,包括如何创建、管理和复用数据库连接,减少每次建立和关闭连接的开销。 2. **常见连接池实现**:如Apache的DBCP、C3P0,Tomcat的JDBC连接池(Tomcat-jdbc-pool),以及...

    java 写的数据库连接池

    这里我们讨论的是一个用Java实现的数据库连接池。连接池的基本原理是预先创建并维护一定数量的数据库连接,应用程序需要时可以从池中获取,用完后归还,而不是每次操作都新建和关闭连接。 ### 数据库连接池概念 ...

    DBConnectionPool.rar_dbconnectionpool_数据库连接池

    2. **Java数据库连接池实现**:在Java中,有多种开源的数据库连接池实现,如Apache的DBCP、C3P0、HikariCP和Tomcat JDBC Connection Pool等。这些库提供了一套接口和配置选项,使得开发者可以轻松集成到自己的应用中...

    JSP数据库连接池的研究与实现(源代码+论文).zip

    4. **Tomcat JDBC Connection Pool**:Tomcat服务器自带的连接池,与Tomcat集成紧密,稳定性好。 **四、数据库连接池的工作原理** 1. **初始化**:应用启动时,连接池会预创建一定数量的连接并保存起来。 2. **...

    JSP数据库连接池的研究与实现(源代码+lw).zip

    学习和研究这个项目,开发者可以深入理解数据库连接池的工作原理,提升JSP应用的性能,同时掌握如何在实际项目中部署和配置连接池。 总结起来,"JSP数据库连接池的研究与实现"是一个涵盖数据库连接池配置、使用和...

    用JNDI建立数据库连接池实例

    在这个实例中,我们将讨论如何在基于Tomcat的Web服务器上使用JNDI来创建数据库连接池。 首先,理解JNDI的工作原理至关重要。JNDI的核心是名称绑定,即将一个名称(比如“jdbc/myDataSource”)与一个对象(如数据库...

    mysql(jdbc+数据库连接池+驱动+Navicat)

    数据库连接池的原理是预先创建并缓存一定数量的数据库连接,当应用程序需要时,可以从池中获取,用完后归还,而不是每次连接都创建新的连接,这样可以减少频繁创建和关闭连接带来的开销,提高系统性能。在Tomcat中,...

    tomcat文档

    4. 配置连接池:限制并发连接数,提高响应速度,防止资源耗尽。 5. 使用压缩和缓存:开启HTTP压缩,减少传输数据量;设置合适的缓存策略,减少服务器负载。 五、深度剖析Tomcat 深入剖析Tomcat涉及更多细节,如类...

    tomcat-6.0.20

    - **性能优化**:通过调整JVM参数、开启连接池、启用压缩等功能,提升Tomcat的性能。 - **日志管理**:理解如何配置和分析Tomcat的日志,以进行故障排查和性能监控。 学习和掌握Tomcat 6.0.20,对于Java Web开发者...

    TOMCAT权威指南带目录中文第二版

    同时,还涉及了连接池、线程池、安全配置等高级主题,有助于提升服务器性能和安全性。 Tomcat的性能优化是本书的一个重点。书中讨论了如何调整服务器参数,如最大连接数、超时设置等,以适应不同规模的应用需求。...

    最新版linux apache-tomcat-9.0.54.tar.gz

    对于开发人员来说,理解Tomcat的工作原理,如Servlet生命周期、JSP转换过程以及如何配置连接池、线程池等高级特性至关重要。同时,掌握如何优化Tomcat性能,如调整内存设置、开启压缩、减少重定向等也是提升应用效率...

    Tomcat.6.Developer's.Guide

    - **HTTP 连接管理**:讨论了连接池的实现方式以及如何优化连接管理以提高性能。 ##### 3. 高级特性与优化技巧 - **性能调优**:介绍了如何对Tomcat进行性能调优,包括调整JVM参数、使用缓存技术等。 - **故障排除...

    tomcat4.1

    6. **性能优化**:可以通过调整连接器配置(如最大线程数、空闲超时时间等)、启用连接池、启用压缩等功能来提升Tomcat的性能。 7. **部署应用**:可以将WAR文件直接放入`webapps`目录,或者在`conf/server.xml`中...

    Tomcat源码学习:一个最简单的“Tomcat”

    【描述】虽然描述部分为空,但我们可以推测博主pirate4444在文章中可能以一个简化的Tomcat实现为例,逐步解析其核心组件,如Catalina(核心处理引擎)、 Coyote(HTTP连接器)和 Jasper(JSP编译器)等。他可能还会...

    Tomcat+Redis集群所需jar

    在Tomcat的`lib`目录下添加解压后的JAR包,然后在应用的`web.xml`文件中定义一个`Context`监听器,初始化JedisPool,这是一个连接池,用于管理和复用到Redis的连接。 ```xml &lt;listener-class&gt;...

Global site tag (gtag.js) - Google Analytics