精华内容
下载资源
问答
  • tomcat连接池配置

    2017-03-10 17:25:40
    附带jar包与文档
  • driverClassName 数据库驱动类,针对mysql填com.mysql.jdbc.Driver username ... password ... maxActive ... 最大空闲连接,当idle队列数目超过maxIdle时,归还到连接池的连接就会被释放掉!!...
    driverClassName

    数据库驱动类,针对mysql填com.mysql.jdbc.Driver

    username用户名
    password

    密码

    maxActive

    最大允许的连接数

    maxIdle

    最大空闲连接,当idle队列数目超过maxIdle时,归还到连接池的连接就会被释放掉!!

    具体参考org.apache.tomcat.jdbc.pool.ConnectionPool类returnConnection方法

    当某个连接空闲时间超过minEvictableIdleTimeMillis时就会被释放掉,具体可以查看org.apache.tomcat.jdbc.pool.ConnectionPool类checkIdle方法

    minIdle

    最小空闲连接,当idle队列数量小于minIdle时将不执行checkIdle方法

    initialSize

    创建连接池默认连接数目,默认值为10

    maxWait

    最大等待时间,该值控制着当idle队列没有可用连接,且当前连接数量超过maxActive时就会阻塞等待idle队列有可用连接的最大等待时间

    testOnBorrow

    从连接池中获取连接时是否需要验证返回连接的有效性,一般不使用,如果使用最好配合validationInterval使用,即validationInterval设置为非零值,validationInterval默认为3000毫秒

    testOnConnect

    当连接首次创建后是否需要检验连接有效性,一般设置为false,默认值为false

    testOnReturn

    当连接从busy列表移除添加到idle队列前是否需要校验连接的有效性,

    具体参考org.apache.tomcat.jdbc.pool.ConnectionPool类shouldClose方法

    testWhileIdle空闲时是否校验连接的有效性,建议设置为true,这样就可以在连接池空闲时检验所有idle连接的有效性,避免使用到无效的连接。
    validationQuery

    校验连接有效性时使用的sql语句,比如select 1等

    validationQueryTimeout

    有效性校验超时时间

    timeBetweenEvictionRunsMillis

    改参数控制着idle连接校验、释放工作的执行周期

    minEvictableIdleTimeMillis

    某个连接在被释放前可以空闲的最大时间,但是该事件到了连接也不一定被释放掉,要看当前idle队列中空闲线程数是否大于minIdle值,如果小于就保留,大于则满足释放的条件

    removeAbandoned

    是否释放busy队列超时的连接,配合removeAbandonedTimeout使用

    removeAbandonedTimeoutbusy队列中某个连接使用时间过长,配合removeAbandoned使用
    logAbandoned

    控制使用abandon连接时输出对应日志

    展开全文
  • tomcat连接池配置详解

    2014-11-24 11:53:26
    一、连接池配置   bean class="org.apache.tomcat.jdbc.pool.PoolProperties"> property name="url" value="${jdbcUrl}"/> 数据库驱动--> property name="driverClassName" value="com.mysql.jdbc.

    一、连接池配置

      

    复制代码
    <bean class="org.apache.tomcat.jdbc.pool.PoolProperties">  
        <property name="url" value="${jdbcUrl}"/> 
            <!--数据库驱动--> 
            <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
            <!--用户名-->
            <property name="username" value="mysql"/>  
            <!--密码-->
            <property name="password" value="123456"/>
            <!--注册池JMX,默认:true-->  
            <property name="jmxEnabled" value="false"/>  
            <!--检查连接死活的时间间隔,单位:毫秒-->        
            <property name="validationInterval" value="30000"/>
            <!--指定连接进入空闲状态时是否经过空闲对象驱逐进程的校验,如果校验未通过,则该连接被连接池断掉
             值为true,则validationQuery参数必须为一个非空字串---->
            <property name="testWhileIdle" value="false"/>   
            <!--指定连接返回到池中是时是否经过校验
             值为true,则validationQuery参数必须为一个非空字串---->
            <property name="testOnReturn" value="false"/>  
            <!--指定连接被调用时是否经过校验,如果校验未通过,则该连接被连接池断掉,并由连接池尝试调用另一个连接
             值为true,则validationQuery参数必须为一个非空字串-->
            <property name="testOnBorrow" value="true"/> 
            <!--在连接返回给调用者前用于校验连接是否有效的SQL语句,如果指定了SQL语句,则必须为一个SELECT语句,且至少有一行结果-->
            <property name="validationQuery" value="select 1"/> 
            <!--连接池处于活动状态的数据库连接的最大数目,0表示不限制,表示最大并发-->  
            <property name="maxActive" value="1000"/>  
            <!--初始化连接数-->
            <property name="initialSize" value="10"/> 
            <!--连接池中连接用完时,新的请求的等待时间(即等待别的连接空闲),超时返回异常,毫秒--> 
            <property name="maxWait" value="100000"/>  
            <!--以毫秒表示空闲对象驱逐进程由休眠状态进入运行状态的数值,值为非正整时表示不运行任何空闲对象驱逐进程
             运行判断连接超时任务的时间间隔-->
            <property name="timeBetweenEvictionRunsMillis" value="30000"/> 
            <!--以毫秒表示连接被空闲对象驱逐进程驱逐前在池中保持空闲状态的最小时间,连接的超时时间,默认为半小时-->
            <property name="minEvictableIdleTimeMillis" value="30000"/> 
            <!--连接池检查每个空闲对象驱逐进程的对象数量
                <property name="numTestPerEvictionRun" value="3"/>
            -->        
            <!--连接池处于空闲状态的数据库连接的最小数目,低于此数值将会创建所欠缺的连接,设0无限制--> 
            <property name="minIdle" value="10"/>
            <!--连接池处于空闲状态的数据库连接的最大数目,取非正整数表示不受限制,超过此数值时多余的空闲连接将会被释放-->   
            <property name="maxIdle" value="200"/>
            <!--当清除无效连接时是否在日志中记录清除信息的标志-->
             <property name="logAbandoned" value="false"/> 
             <!--是否清除已经超过 removeAbandonedTimeout 设置的无效连接,自动回收超时连接
              启动机制:getNumActive() > getMaxActive() - 3 和 getNumIdle() < 2 
              假设maxActive=20,而当前18个活动连接,1个空闲连接,机制将会启动
              但是只有在活动连接没有使用的时长超过“removeAbandonedTimeout”(默认300秒),的连接将被清除-->
            <property name="removeAbandoned" value="true"/> 
            <!--以秒表示清除无效连接的时限,自我中断时间,单位秒-->         
            <property name="removeAbandonedTimeout" value="60"/>
            <!--设置拦截器,默认为空
             ConnectionState:跟踪自动提交,只读目录和事务隔离级别
             StatementFinalizer:跟踪打开的语句,并关闭连接时的返回到池中
             --> 
            <property name="jdbcInterceptors" value="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"/>  
    </bean> 
    展开全文
  • tomcat 配置 数据库连接池

    万次阅读 2018-09-06 20:57:32
    1.在项目的META-INF下面,添加context.xml文件(指定单个项目使用数据库连接池,也可配置全局的): &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt; &amp...

    1.在项目的META-INF下面,添加context.xml文件(指定单个项目使用数据库连接池,也可配置全局的):

    <?xml version="1.0" encoding="UTF-8"?>
    <Context >  
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
        <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
        <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
    
        <Resource  
            <!-- 数据库名称 -->
            name="drp"
             <!-- 数据源对应的java类型  -->
            type="javax.sql.DataSource" 
            <!-- 数据库连接池中最大连接数,0表示无限制  -->
            maxActive="3" 
             <!--连接池处于空闲状态的数据库连接的最大数目,取0表示不受限制--> 
            maxIdle="1" 
           <!--  最大等待连接时间,若超出此时间则出现异常,-1表示无限制 -->
            maxWait="1000"   
            <!-- 数据库连接地址 -->
            url="jdbc:oracle:thin:@localhost:1521:orcl"  
            <!-- 数据库驱动 -->
            driverClassName="oracle.jdbc.driver.OracleDriver" 
            <!-- 数据库登录名和密码  -->
            username="DRP" password="DRP123456"  
        />   
    </Context> 

    2.取得连接

    Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try { 
            //new DBCP....
            Context ctx = new InitialContext();
            //通过JNDI查找DataSource
            DataSource ds = (DataSource)ctx.lookup("java:comp/env/drp");
            conn = ds.getConnection();
            pstmt = conn.prepareStatement("select * from t_user");
            rs = pstmt.executeQuery();
            ...
        }catch(Exception e) {
            e.printStackTrace();
        }finally {
            if (rs != null) {rs.close();}
            if (pstmt != null) {pstmt.close();}
            if (conn != null) {
                //将Connection放到连接池中
                conn.close();
            }
        }   

    用完连接时一定要释放

          对于共享资源,有一个很著名的设计模式:资源池(Resource Pool)。该模式正是为了解决资源的频繁分配﹑释放所造成的问题。为解决我们的问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量﹑使用情况,为系统开发﹑测试及性能调整提供依据。

    为什么使用连接池
          连接,是我们的编程语言与数据库交互的一种方式。我们经常会听到这么一句话“数据库连接很昂贵“。
          有人接受这种说法,却不知道它的真正含义。因此,下面通过实例解释它究竟是什么。
          下面是Mysql数据库创建连接的的一段代码:

    String connUrl ="jdbc:mysql://your.database.domain/yourDBname";  
    
    Class.forName("com.mysql.jdbc.Driver");  
    
    Connection con =DriverManager.getConnection (connUrl);  
    

          当我们创建了一个Connection对象,它在内部都执行了什么:

    1. “DriverManager”检查并注册驱动程序;
    2. “com.mysql.jdbc.Driver”就是我们注册了的驱动程序,它会在驱动程序类中调用“connect(url…)”方法。
    3. com.mysql.jdbc.Driver的connect方法根据我们请求的“connUrl”,创建一个“Socket连接”,连接到IP为“your.database.domain”,默认端口3306的数据库。
    4. 创建的Socket连接将被用来查询我们指定的数据库,并最终让程序返回得到一个结果。

          简单的获取一个连接,系统却要在背后做很多消耗资源的事情,大多时候,创建连接的时间比执行sql语句的时间还要长。

    传统的获取连接方式如下图所示:
    这里写图片描述
          用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。

    采用连接池技术后的过程如下:
    这里写图片描述
          连接过程:maxActive=”3” , maxIdle=”1” ,maxWait=”1000” ,在连接池处于空闲状态时,里面有1个连接,如果再有请求,连接池就会再创建连接,但连接池中最多有3个连接,如果第4个请求连接过来了,必须等待了,知道有个连接释放(断开连接时,连接不会立即被释放,而是1000毫秒后才释放),如果此时没有超时,第4个连接就用释放的,当没有用户连接时,连接池中还是保持1个连接
          数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。


    四个流行的Java连接池:

    • C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection
      和Statement 池的DataSources
      对象。(主页:http://sourceforge.net/projects/c3p0/
    • BoneCP 是一个开源的快速的 JDBC 连接池。BoneCP很小,只有四十几K(运行时需要log4j和Google
      Collections的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。另外个人觉得 BoneCP
      有个缺点是,JDBC驱动的加载是在连接池之外的,这样在一些应用服务器的配置上就不够灵活。当然,体积小并不是 BoneCP 优秀的原因,BoneCP 到底有什么突出的地方呢,请看看性能测试报告。(主页:http://jolbox.com/
    • DBCP(Database Connection Pool)是一个依赖Jakarta commons-pool对象池机制的数据库连接池,Tomcat的数据源使用的就是DBCP目前 DBCP 有两个版本分别是 1.3 和 1.4。1.3 版本对应的是 JDK 1.4-1.5 和 JDBC 3,而1.4 版本对应 JDK 1.6 和 JDBC 4。因此在选择版本的时候要看看你用的是什么 JDK
      版本了,功能上倒是没有什么区别。(主页:http://commons.apache.org/dbcp/
    • Proxool是一个Java SQL
      Driver驱动程序,提供了对你选择的其它类型的驱动程序的连接池封装。可以非常简单的移植到现存的代码中。完全可配置。快速,成熟,健壮。可以透明地为你现存的JDBC驱动程序增加连接池功能。(主页:http://proxool.sourceforge.net/

    出现的问题
          连接次数不对应????

    有关文章:使用Tomcat Manager 远程部署war文件

    展开全文
  • 目录tomcat、jvm、数据库连接池配置参数优化tomcat数据库连接池tomcat的虚拟机环境(jvm)参数配置 tomcat、jvm、数据库连接池配置参数优化 tomcat 每一次HTTP请求到达Web服务,tomcat都会创建一个线程来处理该请求...

    tomcat、jvm、数据库连接池配置参数优化

    tomcat

    每一次HTTP请求到达Web服务,tomcat都会创建一个线程来处理该请求,那么最大线程数决定了Web服务容器可以同时处理多少个请求。maxThreads默认200,肯定建议增加。但是,增加线程是有成本的,更多的线程,不仅仅会带来更多的线程上下文切换成本,而且意味着带来更多的内存消耗。JVM中默认情况下在创建新线程时会分配大小为1M的线程栈,所以,更多的线程异味着需要更多的内存。maxThreads的经验值为:1核2g内存为200,线程数经验值200;4核8g内存,线程数经验值800。
    maxConnections要大于并发数,acceptCount要有一定数量,请求数大于maxConnections,这样才能进入队列
    minSpareThreads可初始化100,防止请求突然增加。
    maxQueueSize:队列数(5.5版本以前),acceptCount:最大队列数
    connectionTimeout可根据测试结果进行调节
    线程可以配置在“tomcatThreadPool” Executor中,也可以直接配置在“Connector”中,但不可以重复配置
    maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat 就会关闭不再需要的 socket 线程。
    maxIdleTime=“60000” 线程最大空闲时间

    数据库连接池

    maxActive连接数 = ((核心数 * 2) + 有效磁盘数)
    initialSize=3初始化数
    minIdle=3空闲数
    maxWait=60000最大等待时间

    tomcat的虚拟机环境(jvm)参数配置

    测试时可用jvisualvm观察tomcat堆、线程、cpu等的变化,进行调节
    调节jvm链接参考地址

    展开全文
  • tomcat 连接池配置

    千次阅读 2017-11-10 15:30:24
    共同同属性属性 这些属性在commons-dbcp和tomcat-jdbc-pool之间...(布尔值)由此创建的连接的默认自动落实状态。如果没有设置,默认是JDBC驱动默认(如果没有设置,则setAutoCommit不会调用该方法)。 defa
  • tomcat数据连接池配置

    2019-04-22 01:05:10
    NULL 博文链接:https://zqs520.iteye.com/blog/1935760
  • NULL 博文链接:https://hylong05.iteye.com/blog/560654
  • tomcat连接池的三个重要参数,连接池的配置很重要,配置不好容易造成程序运行部稳定,下面把常见的问题归纳了下: a. 如果设为true则tomcat自动检查恢复重新利用,没有正常关闭的Connection.(默认是false)   ...
  • 详细的tomcat目录下Context.xml的配置文件中配置数据库连接池,
  • Springboot整合tomcat数据库连接池

    千次阅读 2020-09-22 15:19:40
    1、配置文件 spring: datasource: type: com.zaxxer.hikari.HikariDataSource jdbcUrl: jdbc:mysql://127.0.0.1:8080/database?useUnicode=true&characterEncoding=utf-8&useSSL=true username: root ...
  • Tomcat JDBC 连接池配置

    2019-12-17 09:14:07
    PoolSweeper 会定时检查连接池中的连接, 然后根据你的配置来处理连接. 比如关闭连接时间过长的连接, 废弃长时间没有归还的连接等等. PoolSweeper 的开启并不是一个单独的属性决定的, 而是多个属性共同决定的. 我们...
  • 第一步:写javabean 代码如下: package withouttears.jdbc.db; import java.util.HashMap; import java.sql.*;... //数据库资源的连接工厂是javax.sql.DataSource对象, //它可以创建java.sql.Connec
  • tomcat连接池配置与性能测试
  • tomcat连接配置

    千次阅读 2018-11-22 09:13:21
    Tomcat connector元素常用配置(最大连接数等) 在tomcat的server.xml中有类似:   &lt;Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort=&...
  • 一个网站每天大概有20万的访问量,使用的tomcat自带dbcp连接池,一般网站访问很好,速度也很快,但是过一段时间后,总是报timeout waiting for idle object的异常信息,最后查了apache tomcat的官方文档,终于找到...
  • tomcat数据库连接池配置

    千次阅读 2016-01-30 18:18:31
    1. 在tomcat服务器目录下面的conf中找到一个叫Context.xml的配置文件,在其中加入以下代码 [html] view plain Resource name="jdbc/books" auth="Container"type="javax.sql.DataSource" maxActive="100" ...
  • tomcat配置jdbc连接池

    千次阅读 2018-11-17 14:03:13
    1.为什么要使用jdbc连接池呢 &amp;amp;amp;nbsp;&amp;amp;amp;nbsp; &amp;amp;amp;nbsp;&amp;amp;amp;nbsp; &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;使用jdbc连接数据库时,drivermanager创建...
  • 1.原文地址:http://tomcat.apache.org/tomcat-8.5-doc/jdbc-pool.html 2.译者:chenjazz佳志 3.参考文档:http://wiki.jikexueyuan.com/project/tomcat/tomcat-jdbc-pool.html 4.【】中的文字原文中不存在,属于...
  • 实例使用的Tomcat版本为6.0 ...在Tomcat\apache-tomcat-6.0.33\conf目录下的context.xml文件中配置默认值如下: xml version='1.0' encoding='utf-8'?> Context> WatchedResource>WEB-INF/web.xmlW
  • IDEA下tomcat配置连接池资源

    千次阅读 2018-08-30 16:23:44
    JNDI(Java Naming and Directory ...如果配置的资源是连接池,这样项目中就可以通过统一的方式来获取连接池对象了。 在Eclipse,只需在tomcat目录下\apache-tomcat-7.0.42\conf\Catalina\localhost中添加x...
  • 配置介绍转载地址: http://www.cnblogs.com/jianxie/p/3993181.html DBCP连接池原理分析: http://elf8848.iteye.com/blog/1931778 配置详解:
  • MaxActive,连接池的最大数据库连接数。设为0表示无限制。 maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示 无限制。 *maxActive:最大连接数据库连接数,设 0 为没有限制 *maxIdle:最大...
  • 本文以MySQL数据库为例,介绍Tomcat 8.5环境下,其默认的数据库连接池DBCP配置与使用.
  • DBCP连接池配置参数详解

    万次阅读 2017-09-26 22:28:00
    DBCP连接池配置参数详解
  • 数据库连接池参数说明--基于tomcat
  • tomcat连接池配置,解决数据库超时

    千次阅读 2013-10-29 15:00:58
    需要配置连接池参数如下:    maxActive:同时能够从连接池中被分配的可用实例的最大数;  maxIdle:可以同时闲置在连接池中的连接的最大数;   maxWait:最大超时时间,以毫秒计;   val...
  • 配置tomcat7自带数据库连接池

    千次阅读 2016-07-01 14:54:48
    1.配置tomcat下conf/context.xml auth="Container" type="javax.sql.DataSource" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,852
精华内容 14,740
热门标签
关键字:

tomcat连接池配置参数