达梦数据库JDBC连接池断开自动重连设置

2023-11-03

一、场景

在网络状况不是非常良好,经常会出现暂时性的拥塞或者断开的情况,而且当我们重启数据库时也会发生类似的情况。所以需要配置中间件的连接池来实现连接测试以及自动重连,通过重新配置连接池,成功解决了这个问题。下面会给出一份数据源配置参数详单和一份推荐的数据源配置项。

二、连接池配置参数

1.  initialSize:连接池启动时创建的初始化连接数量
2.  maxActive:连接池中可同时连接的最大的连接数
3.  maxIdle:连接池中最大的空闲的连接数,超过的空闲连接将被释放,如果设置为负数表示不限(maxIdle不能设置太小,因为假如在高负载的情况下,连接的打开时间比关闭的时间快,会引起连接池中idle的个数上升超过maxIdle,而造成频繁的连接销毁和创建)
4.  minIdle:连接池中最小的空闲的连接数,低于这个数量会被创建新的连接(该参数越接近maxIdle,性能越好,因为连接的创建和销毁,都是需要消耗资源的;但是不能太大,因为在机器很空闲的时候,也会创建低于minidle个数的连接)
5.  maxWait:最大等待时间,当没有可用连接时,连接池等待连接释放的最大时间,超过该时间限制会抛出异常,如果设置-1表示无限等待(默认为无限,调整为60000ms,避免因线程池不够用,而导致请求被无限制挂起)
6.  poolPreparedStatements:开启池的prepared(默认是false)
7.  maxOpenPreparedStatements:开启池的prepared 后的同时最大连接数(默认无限制)
8.  minEvictableIdleTimeMillis:连接池中连接,在时间段内一直空闲, 被逐出连接池的时间(默认为30分钟,可以适当做调整,需要和后端服务端的策略配置相关)
9.  removeAbandonedTimeout:超过时间限制,回收没有用(废弃)的连接(默认为 300秒,调整为180)
10. removeAbandoned:超过removeAbandonedTimeout时间后,是否进 行没用连接(废弃)的回收(默认为false,调整为true)
11. testOnBorrow:在进行borrowObject进行处理时,对拿到的connection进行validateObject校验
12. testOnReturn:在进行returnObject对返回的connection进行validateObject校验
13. testWhileIdle:重点,GenericObjectPool中针对pool管理,起了一个Evict的TimerTask定时线程进行控制(可通过设置参数timeBetweenEvictionRunsMillis>0),定时对线程池中的链接进行validateObject校验,对无效的链接进行关闭后,会调用ensureMinIdle,适当建立链接保证最小的minIdle连接数。
14. timeBetweenEvictionRunsMillis:设置的Evict线程的时间,单位ms,大于0才会开启evict检查线程
15. validateQuery:用来做连接检查的sql
16. validateQueryTimeout:检查查询超时时间
17. numTestsPerEvictionRun:代表每次检查链接的数量,建议设置和maxActive一样大,这样每次可以有效检查所有的链接.

三、断开自动重连机制

在出现网络中断和重启数据库时,连接池中的现有连接会失效,而如果不把这些连接进行回收(销毁),当应用取到这些链接时,就会报错。那么解决办法就来了,可以得空的时候,对连接池进行检查,看他们是不是失效了。

1、主动式

设置sql validate相关参数

testWhileIdle=true                   //闲时检查(空闲连接)
validationQuery=select 1             //检查手段(查询)
timeBetweenEvictionRunsMillis= 30000 //多长时间检查一次

这里之所以不选择设置testOnBorrow和testOnReturn是因为这两个对性能的影响比较大,每次取链接时或者放回连接时先对连接进行验证会消耗很多资源。

当设置了testWhileIdle或者testOnBorrow/testOnReturn时必须设置validationQuery才会生效。

2、设置合理的超时时间

minEvictableIdleTimeMillis=600000(空闲链接不被回收的最长时间)        //有效期

有部分资料说removeAbandoned、removeAbandonedTimeout、logAbandoned这三个参数是用来断开自动重连的。从实际测试来看removeAbandoned是用来避免某些查询长时间不能返回或者某些情况下卡会话了,由于达梦数据库是默认不设置超时自动断开的,所以根据实际情况可以在连接池设置超时自动断开。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

达梦数据库JDBC连接池断开自动重连设置 的相关文章

随机推荐

  • 基于随机森林实现特征选择降维及回归预测(Matlab代码实现)

    目录 摘要 1 随机森林 2 随机森林的特征选取 3 基于Matlab自带的随机森林函数进行特征选取具体步骤 1 加载数据 2 首先建立随机森林并使用全部特征进行车辆经济性预测 3 使用随机森林进行特征选择 4 评价各个特征之间的相关性 5
  • 朴实无华地解决h5移动端开发软键盘输入时导致页面出现白块

    项目场景 项目场景 h5移动端开发 问题描述 登录页面在输入账密的时候 软键盘弹起的时候带出了白块在收起软键盘之前不会消失 原因分析 在页面中使用了相对定位 绝对定位属性以及margin属性 导致软键盘弹起时页面内容长度增加但不会自动收回
  • linux自启动程序

    嵌入式linux下有软件需要自启动 只需要在 etc init d rcS末尾添加所要启动的程序即可 开机就会自动运行 vi etc init d rcS在文件末尾添加 例
  • ubuntu16.10 lenovo拯救者笔记本无线网络开关修复方法(联想拯救者 + ubuntu16.04 + WIFI设置)

    问题一1 1 问题描述笔记本型号 Lenovo r720笔记本 i5 7300hq gtx1060 maxq 6g 默认装入Win10系统 然而当装入Ubuntu16 04双系统时 会出现无线网卡 型号 RTL8821AE 被hard bl
  • Composer中的curl引入

    Composer是php的主要扩展库 类似于npm pip等 可以安装很多优秀的php扩展 在使用短信验证码接入功能的时候 必须要引入这个扩展 1 从官网上引入composer地址 composer require curl curl 2
  • 问题:overflow 和 justify-content 同时使用出现内容被裁减的问题

    文章目录 开发的时候遇到如下问题 原因 解决 开发的时候遇到如下问题 当给一个容器的样式同时添加 justify content center 和 overflow x auto 属性 当内容长度超过容器的长度的时候会出现左侧内容被裁剪的问
  • springMVC 国际化 多语言

    springMVC 国际化 多语言 配置 系统有时需要考虑多国人员使用 比如中国人 美国人 日本人 韩国人 面向不同国家的使用者应该能方便地在不同语言之间进行切换 比如中文 英文 日文 韩文 常用的有两种方式 1 根据浏览器默认语言设置系统
  • ClickHouse中文官方文档

    什么是 ClickHouse ClickHouse 是一个面向列的数据库管理系统 DBMS 用于查询的在线分析处理 OLAP 在 正常 的面向行的 DBMS 中 数据按以下顺序存储 排 手表ID Java启用 标题 好活动 事件时间 0 8
  • SSL/CA 证书及其相关证书文件(pem、crt、cer、key、csr)

    数字证书是网络世界中的身份证 数字证书为实现双方安全通信提供了电子认证 数字证书中含有密钥对所有者的识别信息 通过验证识别信息的真伪实现对证书持有者身份的认证 数字证书可以在网络世界中为互不见面的用户建立安全可靠的信任关系 这种信任关系的建
  • 《关键对话,如何高效能沟通》读书笔记(上)

    读书使人进步 每天进步一点点 在工作中相关的能力可以分为七类核心能力 沟通表达能力 信息处理能力 运用科技的能力 计划组织的能力 解决问题的能力 团队合作的能力 数字概念的能力 其中把沟通表达能力列为七类核心能力之首 可见沟通表达能力在一个
  • 网络安全-Mysql注入知识点

    目录 注释 SQL语句 查询语句 UNION LIMIT ORDER BY information schema SCHEMATA TABLES COLUMNS 常用函数 基本函数 盲注 字符串处理函数 报错注入 时间盲注 本篇文章介绍sq
  • 用P5 JS绘制动态绚丽烟花——动态篇

    上一节我们探究了绘制静态图像手绘与码绘的差异 但是万事万物 变化万千 有很多东西仅仅用静态是无法描述的 正如恩格斯所言 整个自然界 从最小的东西到最大的东西 从沙粒到太阳 从原生生物到人 都处于永恒的产生和消灭中 处于不断的流动中 处于无休
  • MySQL库表结构和数据导出导入

    导出数据库 导出dbname表结构 mysqldump uroot p123456 d dbname gt dbname sql 导出dbname表数据 mysqldump uroot p123456 t dbname gt dbname
  • 设备树下的 platform 驱动编写

    一 设备树下的 platform 驱动简介 platform 驱动框架分为总线 设备和驱动 其中总线不需要我们这些驱动程序员去管理 这个是 Linux 内核提供的 我们在编写驱动的时候只要关注于设备和驱动的具体实现即可 在没有设备树的 Li
  • moviepy音视频剪辑:音视频的加载和输出

    专栏 Python基础教程目录 专栏 使用PyQt开发图形界面Python应用 专栏 PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一 概述 在本地进行音视频处理时 首先要从视频文件进行音视频加载 最后要将处理结果输出到文
  • 机器学习 TOP 10 必读论文

    来源 AI科技大本营 编辑 Donna Medium上的机器学习深度爱好者必关注的账号Mybridge照例对11月发表的学术论文进行了排名 整理出了10篇必读论文 建议收藏深读 1 Alpha Zero 用强化学习算法对中国象棋和国际象棋进
  • SD卡 SPI模式操作(1)初始化SD卡

    原文 本人转载 帆登小站 SD卡 SPI模式操作 1 初始化SD卡 作者是初学者 水平有限 本文仅作为个人学习笔记使用 不能保证内容的正确性 部分资料来源于网络 参考了SD卡协议2 0手册等资料 如果有歧义 可以与作者联系 目录 SD卡 S
  • Docker使用阿里云镜像仓库、Harbor介绍和使用、Harbor自动同步镜像

    Docker使用阿里云镜像仓库 这里用阿里云的镜像仓库 使用前准备 登录阿里云找到容器镜像服务 先创建一个命名空间然后就可以创建镜像仓库 得到仓库地址后可以开始使用 上传镜像 1 使用命令先登录 docker login username
  • dede php调用指定文章,织梦dede怎么调用指定的文章

    在织梦dede网站首页调用站内新闻是必不可少的 但是有的时候不能根据自己的需要来调用指定的文章 想要调用自己指定的文章还要做一些修改 在网站中调用指定文章可以使用织梦默认的标签idlist 在调用的时候使用以下代码 dede arclist
  • 达梦数据库JDBC连接池断开自动重连设置

    一 场景 在网络状况不是非常良好 经常会出现暂时性的拥塞或者断开的情况 而且当我们重启数据库时也会发生类似的情况 所以需要配置中间件的连接池来实现连接测试以及自动重连 通过重新配置连接池 成功解决了这个问题 下面会给出一份数据源配置参数详单