精华内容
下载资源
问答
  • ![图片说明](https://img-ask.csdn.net/upload/201907/26/1564100265_687777.jpg)![图片说明](https://img-ask.csdn.net/upload/201907/26/1564100427_344362.jpg) ![图片说明]... ...```
  • Tomcat的连接池提供了maxActive,maxWait,maxIdle,minIdle,initialSize等参数,配置连接池的大小,用户根据自身业务需求配置这几个参数。同时,因为对端数据库服务器状态不受tomcat控制,所以tomcat需要有检查...

    前言

    连接池本质作用是为客户端提供连接复用,提升连接效率,降低系统开销。Tomcat的连接池提供了maxActive,maxWait,maxIdle,minIdle,initialSize等参数,配置连接池的大小,用户根据自身业务需求配置这几个参数。同时,因为对端数据库服务器状态不受tomcat控制,所以tomcat需要有检查连接可用性的机制,通过testOnBorrow,testWhileIdle等选项用户可以告诉tomcat是否检查连接可用性以及如何检查。

    1,连接池大小及性能选项

    maxActive:最主要参数,配置连接池同时能维持的最大连接数,如果客户端理论上需要100个连接,则这个值设为100。
    maxIdle:如果客户端一段时间内不需要使用连接,又一直把所有连接池中的所有连接都维持在活动状态是很浪费资源的,所以maxIdle这个选项告诉tomcat,如果客户端没有需求,那么最多维持maxIdle个空闲连接。
    minIdle:和maxIdle类似,maxIdle告诉tomcat最多维持多少个空闲连接,minIdle告诉tomcat即使客户端没有需求,也要至少维持多少个空闲连接,以应对客户端的突发需求。
    initialSize:连接池启动时要初始化多少个连接,即使客户端这是没有需求,也会初始化空闲连接。
    maxWait:连接池出借连接的最长期限,单位是毫秒,比如设为10000ms,客户端从连接池获取(借出)一个连接后,10000毫秒没有归还(return),则连接池会抛出异常。
    maxAge:连接池中一个连接的寿命,连接池初始化一个连接后,会记下初始化的时间,以后每次出借,或有客户端归还这个连接时,连接池会检查 当前时间 - 初始化时间 > maxAge,如果超过maxAge,连接池会删除这个连接。

    2,连接检查选项

    mysql5以后,如果连接长时间不活动 (34,247,052 ms≈ 9.5 小时),mysql数据库会断开连接,这会导致异常:MySQLNonTransientConnectionException: No operations allowed after connection closed,以下选项将会告诉连接池,主动检查连接可用性,避免这个异常发生。

    validationQuery:检查连接可用性的语句,一般来说mysql设置成SELECT 1, oracle设置成select 1 from dual, sql server设置成SELECT 1 ,在检查连接可用性时,连接池会执行这些语句,如果返回结果不为空,则说明连接可用。
    validationQueryTimeout:执行连接检查语句时的超时时间。

    上面两个选项告诉连接池如何检查连接有效性,下面几个选项告诉连接池在何时检查连接有效性

    testOnConnect: 在连接初始化时执行连接可用性检查
    testOnBorrow:在借出连接时检查连接可用性
    testOnReturn:在客户端归还连接时检查连接可用性
    testWhileIdle:在检查闲置连接时同时检查连接可用性

    3,一个典型的连接池设置

      <Resource name="jdbc/your-jndi-name" auth="Container" type="javax.sql.DataSource"
      factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" 
      maxActive="30" 
      maxIdle="10" 
      minIdle="5" 
      maxWait="100000" 
      initialSize="5" 
      testWhileIdle="true"
      testOnBorrow="true" 
      testOnReturn="false" 
      validationQuery="SELECT 1" 
      validationInterval="30000" 
      timeBetweenEvictionRunsMillis="30000" 
      maxAge="14400000"
      username="your-username" password="your-password" 
      driverClassName="com.mysql.cj.jdbc.Driver" 
      url="jdbc:mysql://host-address:3306/your-db-name?useUnicode=true&amp;characterEncoding=utf-8&amp;disableMariaDbDriver"/>
    
    展开全文
  • 服务器中的系统接口调用超时,去服务器中查看log文件 发现是druid连接池 wait millis 60009, active 50 ,maxactive 200 异常 过程 数据连接池满了没有释放 在配置文件加以下配置 druid: removeAbandoned: true /...

    服务器中的系统接口调用超时,去服务器中查看log文件 发现是 druid连接池 wait millis 60009, active 50 ,maxactive 200 异常 过程

    数据连接池满了没有释放 在配置文件加以下配置

    druid:

    removeAbandoned: true  //超过时间限制是否回收

    removeAbandonedTimeout: 300 //超时时间;单位为秒。300秒=5分钟

    logAbandoned: true //关闭abanded连接时输出错误日志

    展开全文
  • Exception in thread “main” java.lang.IllegalArgumentException: illegal initialSize 6, maxActive 5 问题所在: druid数据库连接池的配置文件配置出错,初始化的时候有6个连接池,但是最大活跃的连接池只有5个...

    Exception in thread “main” java.lang.IllegalArgumentException: illegal initialSize 6, maxActive 5

    问题所在: druid数据库连接池的配置文件配置出错,初始化的时候有6个连接池,但是最大活跃的连接池只有5个
    出错代码

    #初始化时池中建立的物理连接个数。
    initialSize=6
    #最大的可活跃的连接池数量
    maxActive=5
    

    解决方法: 修改配置文件为:

    #初始化时池中建立的物理连接个数。
    initialSize=2
    #最大的可活跃的连接池数量
    maxActive=5
    

    把配置文件改写成上文就不会再出错了

    展开全文
  • 今天服务器出现报错: Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.alibaba.druid.pool.GetConnection TimeoutException:...

    今天服务器出现报错:

    Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to
    obtain JDBC Connection; nested exception is com.alibaba.druid.pool.GetConnection
    TimeoutException: wait millis 60002, active 20, maxActive 20, creating 0, runnin
    gSqlCount 10 

     

    导致系统无法登陆、无法查询

     

    解决方法:

    查看正在请求连接

    SHOW PROCESSLIST 

     

    杀死请求

    kill 1;

     

    根本解决方法:

    优化代码,优化sql

     

    我们这问题最主要是有个sql查询时间太长

    展开全文
  • 大家好,我目前是两台服务器都通过jedispool调用一个redis,jedis的MaxActive我设置的很大,20亿了。但是每隔几天,其中一台 服务器就会报Could not get a resource from the pool,;而另一台服务器却能正常获取...
  • 同事打电话说服务器崩溃了无法访问、卡死,但是硬件没有问题,cpu在低位,内存、网络也都在正常范围内,Tomcat没有挂掉回家、打印线程日志,重启系统,暂时先用着,问题其实还在---> 打印JVM日志命令(jstack -l $...
  • 从配置可以看到,我的连接数max = 600, 但是程序跑到不到一会就报连接数不够, 获取不了连接数就一直卡在那里,重启tomcat服务器,过一会又是这样   从数据库 SHOW PROCESSLIST 发现好多连接数在 sleep , ...
  • java web 项目多服务器部署

    千次阅读 2018-05-02 12:55:50
    maxActive和maxWait没有找到 最近做公司项目,项目结构大体完成,自己在这里做个记录,怕自己忘记! 项目想做前后端分离,多个项目组合成一个项目,但是用户感觉是一个项目,用户登录之后不需要在其他项目重复登录...
  • Tomcat的连接池提供了maxActive,maxWait,maxIdle,minIdle,initialSize等参数,配置连接池的大小,用户根据自身业务需求配置这几个参数。同时,因为对端数据库服务器状态不受tomcat控制,所以tomcat需要有检查...
  • 采用redis作为独立缓存服务器(一)

    千次阅读 2018-02-03 00:54:45
    <property name="maxActive" value="${maxActive}" /> ${minIdle}" /> ${maxWait}" /> ${validationQuery}" /> ${testWhileIdle}" /> ${testOnBorrow}" /> ${testOnReturn}" /> ${...
  • Web服务器的工作原理(一)

    千次阅读 2016-11-21 15:16:31
    Web服务器的工作原理(一)12@(服务器)[Web服务器, Notes] VICTORY LOVES PREPARATIONWeb服务器的工作原理一12 思维导图 一web服务器应用服务器和web容器 web服务器 应用服务器 web容器 二Servlet 三ServletContext...
  • <property name="maxActive" value="${maxActive}"/> <!-- 初始化连接数量 --> ${initialSize}"/> <!-- 配置获取连接等待超时的时间 --> ${maxWait}"/> <!-- 最小空闲连接数 --> ${minIdle}"/> <!-- 配置...
  • 一台服务器部署多个项目

    千次阅读 2017-12-26 14:14:06
    maxActive = "10" maxIdle = "3" minIdle = "1" maxWait = "60000" testOnBorrow = "false" testOnReturn = "false" testWhileIdle = "true" validationQuery = "select 1" ...
  • ”问题疑问,本网通过在网上对“数据库服务器最大连接数和连接池最大活动数可否相等?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下: 问题: 数据库服务器最大连接数和连接池最大活动数可否...
  • mysql 配置参数

    千次阅读 2021-01-18 19:41:08
    mysql JDBC Driver常用的有两个,一个是gjt(Giant Java Tree)组织提供的mysql驱动,其JDBC Driver名称(JAVA类名)为:org.gjt.mm.mysql.Driver详情请参见网站:http://www.gjt.org/另一个是mysql官方提供的JDBC ...
  • Tomcat服务器学习笔记

    多人点赞 2021-12-06 12:25:16
    这就是Tomcat服务器的内部结构,最顶层的容器是Server,代表着整个服务器,整个 Tomcat 的生命周期由Server 控制,一个 Server 至少包含一个 Service(至于最多可以包含多少个 Service,一是看 Tomcat 本身的配置,...
  • 在redis.conf文件中bind 127.0.0.1加上#号 在redis.conf文件中把 #requirepass 的#号去掉...在本地用java代码链接://Redis服务器IP private static String ADDR = "你的服务器ip"; //Redis的端口号 private static
  • 请问下按照老师的文档把本地服务器运行起来了,网页能出现Hello world,IDEA也链接上数据库了,但是为什么用接口访问不到数据库的数据访问本地 ...HTTP Status 500 – Internal Server ErrorType ...
  • 找到服务器目录下的server.xml,在Host标签中添加如下代码name="jdbc/pool"type="javax.sql.DataSource"username="root"password="root"driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3306/...
  • 产品使用的系统数据源需要在应用服务器中建立数据库连接池,这是部署的重要步骤。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间...
  • 【踩坑记录】记第一次部署项目到腾讯云服务器1.前言2.踩坑记录踩坑1:服务器上的jdk、tomcat安装哪个版本?踩坑2:代码中的URI使用绝对路径还是相对路径?经验1:发生错误时,请查看tomcat的运行日志5.部署流程5.1 ...
  • 如何将项目部署到服务器

    千次阅读 2018-01-03 10:17:15
     maxActive="100"  driverClassName="com.mysql.jdbc.Driver"  url="jdbc:mysql:// 数据库IP地址 :3306/ 数据库名 " />   (二三步或者参考 https://www.cnblogs.com/huangwentian/p/7542280.html ...
  • tomcat服务器通过配置来部署程序 <Context path="/hyt2pf1" docBase="E:\Workspaces\hyt2pf1\context" debug="5" reloadable="true" crossContext="true" workDir="E:\Workspaces\hyt2pf1\work"> <...
  • 服务器 的环境如下:Tomcat7 + MySql5.6 一,如果自定义了程序的文件目录 , 下面的 /alidata/xxx 就是自定义的目录 在 Linux 的 Tomcat 的 server.xml 里的 Host 节点内添加 Resource: <Host name=...
  • 本次的redis放在服务器上面 进入redis的配置文件 **并将protected-mode修改为no 如果开启protected-mode 那么在没有设定bind ip且没有设置密码的情况下 Reids只允许接收本机 **注销掉对应的bind**** 默认情况是 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,117
精华内容 6,446
关键字:

服务器maxactive