文档章节

应用连接数据库超时设置

Kevin_JD
 Kevin_JD
发布于 2017/09/07 14:03
字数 534
阅读 62
收藏 1
点赞 0
评论 0

1. JDBC MySQL Driver连接串超时设置

jdbc:mysql://xxx.xx.xxx.xxx:3306/database?connectTimeout=60000&socketTimeout=60000

如上连接串实例, 可以通过connectTimeout和socketTimeout设置超时, 含义说明:

  • connectTimeout: 和mysql服务器建立socket连接的超时时间, 默认值0, 表示不设置超时, 单位为毫秒,建议设置为30000
  • socketTimeout:客户端和mysql服务器之间建立socket后, 读取/写入socket时的等待超时时间, linux系统默认的socketTimeout为半小时,可以不设置

这两个超时也可以配置到dbcp的connectionProperties属性中。

2. 连接池配置超时

maxWait: 表示从连接池取连接, 连接池中没有可用连接时的等待时间, 默认值为0, 表示无限等待, 单位为毫秒, 建议设置为60000足够, 60s取不到连接就早点报错吧。

3. Mybatis配置查询超时

在mybatis配置文件中配置默认查询超时时间: defaultStatementTimeout, 单位为秒,不设置则会无限等待。

<configuration>
    <settings>
        <setting name="defaultStatementTimeout" value="30"/>
    </settings>
</configuration>

如果某一些sql语句需要执行超过defaultStatementTimeout可以通过Mapper文件单独设置sql的超时时间。

<mapper namespace="com.co.sa.sample.Mapper">
    <select id="selectXXX" parameterType="com.co.sa.SamplePojo"  timeout="600" >
        select xxx from xxx
    </select>
</mapper>

4. 事务超时

事务超时用于控制事务执行的超时, 执行时间是事务内所有代码执行时间总和, 单位为秒。

事务超时有两种配置方式,一种是注解:

在spring的配置文件中配置注解驱动:

<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>

然后在代码中添加@Transactional注解, 此时可以在注解中设置事务超时时间, 单位为秒:

@Transactional(timeout=2)
public void doSomething(Foo foo) {
    //do something
}

另外一种配置超时的时间是通过spring的tx:advice节点来设置, 单位为秒:

<tx:advice transaction-manager="transactionManager">
    <tx:attributesType>
        <tx:method name="update*" timeout="3"></tx:method>
        <tx:method name="delete*" timeout="3"></tx:method>
    </tx:attributesType>
</tx:advice>

事务超时无法全局配置。上述两种配置方式只能有一种起作用。

参考资料:

http://www.cubrid.org/blog/understanding-jdbc-internals-and-timeout-configuration

http://www.mybatis.org/mybatis-3/configuration.html

https://commons.apache.org/proper/commons-dbcp/configuration.html

© 著作权归作者所有

共有 人打赏支持
Kevin_JD
粉丝 1
博文 4
码字总数 1930
作品 0
海淀
高级程序员
JDBC连接超时问题

这两天遇到一个问题,早上来了登录我们的项目网站第一次登录总是登不上去,第二次就好了,我看了一下后台的报错信息是这样的: The last packet successfully received from the server was ...

Trigl
2016/07/28
0
0
这样诊断和调优,轻松与数据库"timeout"说再见

作者介绍 下面是用户访问一个Web站点的常见错误: src="https://mmbiz.qlogo.cn/mmbizjpg/tibrg3AoIJTupEygel5vDWICEDdFel1bice7zXMx6iaEOCtyCGyzpcnb1MMon7eWDsusWG2nSb3vMKn0m93IlcQWg/0?w......

许昌永
2016/11/09
0
0
weblogic10_windows下优化配置实例

优化说明: 一、Weblogic服务程序设置: 1、设置JDK内存: 修改weblogicuserprojectsdomainsbasedomainbin下的setDomainEnv.cmd文件: 修改前: if"%JAVA_VENDOR%"=="Sun" ( set WLSMEMARGS_...

jeffsui
2014/02/11
0
0
超时时间已到。在操作完成之前超时时间已过或服务器未响应

报错,“超时时间已到。在操作完成之前超时时间已过或服务器未响应” 初步分析原因为对MSSQL操作时连接超时,知道这事,以前没留意,大概是在配置文件中设置连接时限,在网上找了下解决方法,...

donny945
2014/06/17
0
1
数据库连接池应用中数据库服务器断开超时连接的问题

数据库应用开发过程中,我们可能会遇到一个问题:应用使用了数据库连接池,每经过指定时间后,发出到数据库服务器的任何请求都会失败,而且有且仅有一次失败,之后的正常访问都没有问题。尤其...

如风达
2015/09/18
137
0
需要我们了解的SQL Server阻塞原因与解决方法 - sym_cn

这里通过连接在sysprocesses里字段值的组合来分析阻塞源头,可以把阻塞分为以下5种常见的类型(见表)。waittype,open_tran,status,都是sysprocesses里的值,“自我修复?”列的意思,就是指阻...

鱼煎
2016/05/07
43
0
weblogic 8.1 安装并配置数据源

weblogic 8.1 安装并配置数据源 一、安装weblogic服务器: 1. 启动开始菜单的 quickstart , 执行 create a new domainconfiguration … 2 .下一步 3 .下一步,选自定义 4 .下一步, name...

coolio
2014/05/21
0
0
【追光者系列】HikariCP连接池监控指标实战

摘自【工匠小猪猪的技术世界】--点击“阅读原文”关注 1.这是一个系列,有兴趣的朋友可以持续关注 2.如果你有HikariCP使用上的问题,可以给我留言,我们一起沟通讨论 3.希望大家可以提供我一...

chenssy
04/25
0
0
mysql 8小时空闲后连接超时的问题

近一段时间,部门同事反映在使用mysql的过程出现数据库连接问题 应用程序和数据库建立连接,如果超过8小时应用程序不去访问数据库,数据库就断掉连接 。这时再次访问就会抛出异常,如下所示:...

iTeacher
2012/05/31
0
0
mysql常用参数

现只列举几个重要的参数,如下表所示: 参数名称 参数说明 缺省值 最低版本要求 user 数据库用户名(用于连接数据库) 所有版本 password 用户密码(用于连接数据库) 所有版本 useUnicode 存...

如风达
2016/11/08
16
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
今天
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
1
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部