近期公司一个项目让我修改,程序总是在数据库服务重启的情况下出问题。究其原因锁定为连接池配置。
由于用到的是Proxool连接池,我是第一次接触这个。所以在网上找了下相关资料。大部分都是讲怎么配置,千篇一律
大抄抄小抄抄,抄来抄去。废话就不多说了。
公司的程序是一直和数据库做交互的。当程序运行过程中,我停掉数据库服务,本应看到:
com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect
链接失败的异常,但是程序并没有抛出这个异常,而是链接成功。只是在从数据库中取数据时发生问题抛出如下错误:
com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: socket write error
可惜头脑简单的我在网上狂找socket write error这个问题出现的原因和解决办法。
“
这个问题一般是客户端在连接还没有完全建立的时候就取消连接,比如用户按了浏览器上面的“停止”按钮,一般来说没有什么问题。但是如果频繁出现,就表示很多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题
可能你的网络连接存在一些问题,你的数据传输的时候,可能由于时间等待的太久,但是server段设置的连接检验时间限制一定,那么就可能出现这种情况的!
不过更常见的原因是:
1:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;
2:客户关掉了浏览器,而服务器还在给客户端发送数据;
3:浏览器端按了Stop;
4:服务器给客户端响应结果给防火墙拦截了。
”
但是程序是并不是web程序。仔细想了想问题应该不是这个。然后通过看Proxool连接池配置和此问题的原因,我马上又锁定
Proxool配置中的“house-keeping-sleep-time”这项配置。但是把时间调短还是不能解决问题。
没办法只好继续在网上找。看到有些文中指出添加test-before-use配置,即每次取出连接都检查连接是否可用,就可以做到让连接池实现在故障恢复后自动重连接
但是我添加后还是抛出错误。而且是程序已启动就抛出错误
java.sql.SQLException: Created a new connection but it failed its test
一看错误是test错误。这是为啥呢?
看配置才知道有这么一项配置:house-keeping-test-sql
看网上90%的讲proxool的配置的文章test语句都是这个:select CURRENT_DATE
就连我要改的程序中的也是配置成这个语句,哎。copy,绝对的copy
因为我们公司用的是sql server2005,select CURRENT_DATE这个语句在mssql上根本就是错误的。
所以会抛出Created a new connection but it failed its test异常。因为添加test-before-use这个后,会检查连接是否可用。但是此时sql语句有误,怎么检查?
改成select getdate()问题搞定。此错误搞定
分享到:
相关推荐
在Java的持久层框架中,Hibernate4是一款广泛应用的ORM(对象关系映射)工具,它极大地简化...遵循正确的配置步骤,理解配置项的意义,就能有效地解决这个问题,使你的应用能够顺利地使用Proxool连接池进行数据库操作。
文档中提到了几种连接池的实现,比如c3p0和Proxool连接池。除了这些,还讨论了通过应用程序服务器使用JNDI获取连接和其他连接特定配置的相关内容。 ### 方言配置 Hibernate需要知道如何与所使用的数据库方言对话,...
4. **代理池(Proxool)**:标签中提到了“proxool”,这是一个数据库连接池的解决方案,但在网络爬虫中,它可能被误用或者误解。在爬虫领域,通常会使用代理服务器来避免因为频繁请求同一网站而被封IP。一个代理池...
智能电视组好用的点播APP,可以看4K,8K的源
深度学习Yolov8算法
# 基于C++和Java的TeamTalk企业即时通讯系统 ## 项目简介 TeamTalk是一套开源的企业办公即时通讯软件,TTServer作为其核心组件,提供了用户登录、消息转发及存储等基础服务。TTServer包含多种服务器模块,如LoginServer、MsgServer、RouteServer、FileServer、MsfsServer和DBProxy,分别负责不同的功能,共同构建了一个完整的企业即时通讯系统。 ## 项目的主要特性和功能 私人聊天支持用户之间的私密聊天。 群组聊天支持多人参与的群组聊天。 文件传输提供在线及离线文件传输服务。 多点登录允许多设备同时登录同一账号。 组织架构设置支持企业组织架构的管理和设置。 ## 安装使用步骤 ### C++部分 1. 编译 整体编译运行srcbuild.sh脚本,例如.build.sh version 0.0.1。
内容概要:本文提供了从准备到最终配置完整的 Ubuntu 20.04 安装教程,主要分为六个部分讲解。首先介绍了下载所需 ISO 镜像的方法以及使用不同操作系统来制作启动用的 U 盘,然后详述了安装步骤,包括选择语言、联网方式、分区决策以及创建用户账户的具体操作流程,并给出了对于初学者较为友好的磁盘分配建议。此外,还强调了一些关键配置点如系统更新和常用工具的安装。 适用人群:对 Linux 感兴趣的新手或者打算把 Ubuntu 作为日常操作系统使用的用户,也包括希望基于 Ubuntu 构建个人或小型团队开发环境的技术爱好者们。 使用场景及目标:适用于计划搭建一台新的计算机并运行高效稳定的 Linux 工作站或服务器的情况;旨在提供给用户快速上手且安全可靠的环境搭建方法,满足日常工作任务和个人兴趣探索的需求。 其他说明:文中涉及的操作命令均适用于大多数 Unix-like 操作系统的终端窗口,所有命令都尽可能地进行了注释以便理解每个动作的意义。
# 基于Python的机器学习实战项目 ## 项目简介 本项目是一个基于Python的机器学习实战项目,涵盖了多种机器学习算法和应用场景。项目内容包括集成学习、决策树、KNN算法、逻辑回归以及朴素贝叶斯等算法的实现。通过这些算法,项目展示了如何处理不同类型的数据集,并进行分类、预测和可视化。 ## 项目的主要特性和功能 1. 集成学习 实现AdaBoost集成学习算法,通过构建多个弱分类器并进行集成,优化模型性能。 支持数据集的分类训练和预测。 2. 决策树 实现基于信息增益的决策树分类器,能够处理多维数据集。 提供决策树的可视化功能,帮助理解决策树的构建过程。 3. KNN算法 实现K最近邻算法,用于手写数字识别和约会问题分类。 支持数据的标准化处理,提高模型性能。 4. 逻辑回归 实现逻辑回归模型,用于分类任务。
智能机器人项目的技术方案设计与实现路径
532足球青训俱乐部管理后台系统,系统包含两种角色:用户、管理员,系统分为前台和后台两大模块,主要功能如下: 1 学员功能模块的实现 学员注册界面 未有账号的学员可进入注册界面进行注册操作。 学员登录界面 学员要想进行商品购买操作,必须登录系统。 商品详情界面 学员在商品详情界面可查看商品详细信息,登录后可加入购物车或者立即购买。 课程安排详情界面 学员可选择课程安排查看详情信息,登录后可进行上课签到操作。 上课签到界面 学员登录后可进行上课签到操作。 个人中心界面 学员登录后可对个人信息进行管理。 我的订单界面 学员可进入我的订单界面查看个人已有订单信息。 2 管理员功能模块的实现 管理员登录界面 管理员要进入系统后台进行管理操作,必须登录系统。 公告信息管理界面 管理员可增删改查公告信息。 学员管理界面 管理员可查看、添加、修改和删除学员信息。 商品信息管理界面 管理员可增删改查商品信息。 课程安排管理界面 管理员可添加、修改和删除课程安排信息。
Java路线的第一步:简单了解计算机网络
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。
数据分析案例-基于猫眼和豆瓣平台的漫威系列电影票房分析(数据集+代码).rar
xilinx Vivado TCL语言命令手册
升腾计算产业生态全景-华为算力产业链深度系统研究.pdf
随着人工智能大模型不断刷新行业边界,DeepSeek凭借卓越的推理能力和广泛适用性,正成为企业本地部署的重要选择。GPU算力选型成为本地化部署成功的一个关键因素,英伟达专为中国市场打造了的 GPU 系列,涵盖高性能、中端及备选方案,具体包括 H20 GPU、L20 GPU、L2 GPU 以及 RTX 4090 D。本文基于最新公开参数,详细解析各款 GPU 产品特性,并结合vSphere虚拟化平台,提供从中小企业到大型企业的全面部署方案建议。
B-普通物理(1)-普通物理(1)教学创新成果报告.pdf
acautoai-master是一种AI自动化部署管理器,搭建完成后可以管理运行的算法
网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此林业产品销售信息的管理计算机化,系统化是必要的。设计开发林业产品推荐系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于林业产品销售信息的维护和检索也不需要花费很多时间,非常的便利。 林业产品推荐系统是在MySQL中建立数据表保存信息,运用SpringBoot框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。管理员管理商品和用户,管理商品评价和商品资讯,管理不同状态的订单。用户管理收货地址,管理不同状态的订单,收藏商品,购买商品。 林业产品推荐系统在让林业产品销售信息规范化的同时,也能及时通过数据输入的有效性规则检测出错误数据,让数据的录入达到准确性的目的,进而提升林业产品推荐系统提供的数据的可靠性,让系统数据的错误率降至最低。 关键词:林业产品推荐系统;MySQL;SpringBoot框架
内容概要:本文详细介绍了LaTeX的一种轻量级发行版TinyTeX的下载和使用教程。TinyTeX旨在减小体积以减少不必要的冗余文件,并支持多种操作系统的高效安装方法。特别强调了在Mac环境下借助R语言包进行的安装流程,并讲解了创建和使用TinyTeX-Docker镜像的方法,还展示了英文和中文LaTeX模板的实际应用测试。此外,文中还提供了遇到的问题及其解决方案,以确保用户能够顺利地进行LaTeX文档编辑及自动化报告生产。 适用人群:熟悉R编程或者正在研究生物信息学相关领域的科研工作者,或是任何有志于掌握更高效的文献写作工具的学习者。 使用场景及目标:帮助用户在不同的计算环境中快速部署稳定的LaTeX环境;实现高质量科研文章排版及复杂项目文档的批量生产;辅助自动化实验数据处理与结果汇报。 其他说明:文中提供的技巧不仅局限于TinyTeX本身的使用指导,同时也适用于其他依赖LaTeX的开源软件栈,比如Knitr用于集成统计计算结果到PDF文件中。同时,在实际案例部分提供了一个简单易行的方式来进行环境验证。