`
lix23
  • 浏览: 45184 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql的连接自动关闭问题

阅读更多
在工作中好几次遇见了mysql连接自动关闭的问题,最近系统中的一个模块又碰到了同样的“conection failed症状”。
由于使用了动态表,该模块并没有使用系统标配的sessionFactory,而是自己构建了一个单独的Hibernate sessionFactory
对动态表进行操作。开始时,我怀疑是不是多线程共用了session而导致的的session关闭问题,于是发起几位同事
一同测试了一下,发现不是这个原因;再详细问一下错误产生时的状况:应用启动很长时间后,只有一个人在操作也有
会出这个错。啊?一听到“应用启动很长时间之后才出现”,立马想起了mysql这个经典的“连接关闭”问题,立刻动手为
sessionFactory配了个c3p0连接池,并设置了c3p0定期检查数据库连接:
configuration.setProperty("idle_test_period","1800");
重启测试,问题解决。比较搞笑的是,mysql的启动参数中WaitTimeOut竟然和这个问题的出现有关系;这个参数默认设置是
八小时,于是应用启动八小时后才会出现connection failed问题;我们将WaitTimeOut设成很小之后,顺利地在几秒钟内重现了
这个Bug。对了别忘了:idle_test_period的值必须设得要比WaitTimeOut值小才管用。
分享到:
评论
1 楼 fable0618 2010-12-22  
有事请教,方便加Q不

相关推荐

    c# mysql数据库连接池实现

    在应用程序代码中,通过`DbContext`实例来访问数据库,连接池会自动管理数据库连接的创建和复用。 ```csharp using (var context = new MyAppDbContext(_dbContextOptions)) { var users = context.Users.ToList...

    mysql连接1045 access问题

    MySQL 连接 1045 Access 问题解决方案 MySQL 是一个流行的开源关系数据库管理系统,广泛应用于各种 Web 应用程序中。但是,在使用 MySQL 过程中,可能会遇到各种问题,例如连接问题、访问问题等。其中,1045 Access...

    mysql 连接闪断自动重连的实例

    总之,处理MySQL连接闪断并实现自动重连是一个关键的错误恢复策略,它确保了应用程序在面对网络问题时仍能保持服务连续性。通过合理的设计和编程实践,我们可以构建出健壮的数据库连接管理机制。

    javaee mysql空闲关闭

    在JavaEE应用中,MySQL数据库是...总之,处理JavaEE应用中的MySQL空闲关闭问题需要综合考虑数据库服务器的配置、连接池的管理策略以及应用本身的事务处理。正确配置和使用这些元素,可以确保应用的稳定性和资源效率。

    MySQL Sleep连接过多问题解决方法

    1. **优化程序逻辑**:确保在程序结束前调用`mysql_close()`关闭数据库连接,或者使用连接池自动管理连接生命周期。 2. **调整超时设置**:在MySQL配置文件`my.cnf`中,增加以下代码: ``` [mysqld] wait_time...

    delphi远程连接MySQL(完美版)

    在"DriverName"属性中选择"MySQL",这会自动填充"ConnectionString"属性,但我们需要根据实际情况进行调整。 连接字符串通常包括以下关键参数: 1. `Server=your_server_ip;` - 这是你的MySQL服务器的IP地址。 2. `...

    如何解决mysql数据库8小时无连接自动关闭

    windows下打开my.ini,增加:   interactive_timeout=...  关于mysql自动关闭服务的现象,可以通过mysql服务器端程序mysql Administrator调整连接参数。将max_connections max_updates max_questio

    MySql.Data.zip_MYSQL_mysql c#_mysql 连接_mysql连接类_连接MYSQL

    这将自动将 `MySql.Data.dll` 添加到项目的引用中。 2. **创建数据库连接** 使用 `MySqlConnection` 类来创建一个到 MySQL 服务器的连接。首先,需要指定连接字符串,它包含数据库服务器的地址、端口、数据库名、...

    MT4连接MYSQL数据库的例子

    同时,注意在处理完数据库操作后关闭连接,以释放资源: ```cpp mysql.Disconnect(); ``` 此外,为了在MT4环境中安全地使用MySQL,应确保遵循最佳实践,例如加密数据库连接信息、限制权限、定期备份数据等。同时,...

    jsp连接MySQL用连接池方式步骤

    ### JSP连接MySQL使用连接池方式详解 #### 一、引言 在现代Web开发中,JSP(Java Server Pages)是一种广泛使用的服务器端技术,用于生成动态网页内容。为了提高应用程序的性能和效率,通常会采用连接池来管理与...

    多线程下mysql连接数过多解决demo

    在多线程环境中,MySQL连接数过多的问题是一个常见的性能瓶颈,尤其在高并发的应用场景下。这通常是由于每个线程创建一个独立的数据库连接导致的,当并发线程数量增加时,连接池中的连接数量也随之增加,如果超过...

    C#连接MYSQL示例代码

    3. 安装完成后,`MySql.Data.dll`会自动添加到你的项目引用中。 接下来,我们将讨论如何编写C#代码来连接到MySQL数据库。以下是一个基本的连接示例: ```csharp using MySql.Data.MySqlClient; public class ...

    mysql连接测试

    MySQL连接测试是编程中常见的任务,特别是在使用C#开发.NET Framework 4应用程序时。在VS 2013集成开发环境中,我们可以利用MySQL提供的数据库驱动MySQL.Data.dll来实现这一功能。以下将详细介绍如何进行MySQL数据库...

    mysql5.5.8安装问题(无法远程连接)

    5. **安全工具如MySQLTuner**:在安装过程中,MySQL可能会自动运行一个名为`mysql_secure_installation`的安全脚本,该脚本可能会限制远程连接。检查这个脚本的设置,确保它不会阻碍远程访问。 6. **SELinux策略**...

    连接mysql sqlserver的两个数据库

    // MySQL连接 Connection mysqlConn = DriverManager.getConnection(mysqlUrl, "username", "password"); // SQL Server连接 Connection sqlServerConn = DriverManager.getConnection(sqlServerUrl, ...

    java连接mysql驱动文件

    8. **最佳实践**: 为了确保安全性和性能,连接应该在使用完毕后及时关闭,可以使用try-with-resources语句来自动关闭资源: ```java try (Connection conn = DriverManager.getConnection(url, user, pass); ...

    VB6连接MySQL数据库实例含驱动和源代码

    5. **关闭连接**:操作完成后,记得关闭连接和Recordset以释放资源: ```vb conn.Close Set conn = Nothing Set rs = Nothing ``` 6. **源代码分析**:提供的压缩包文件"VB6连接MySQL数据库"可能包含一个或多...

    php与mysql连接函数

    - 持久连接不需要显式关闭,它会在脚本执行结束后自动关闭。 - 当使用持久连接时,可以提高性能,但要注意连接资源的管理和监控。 #### 3. `mysql_close()` — 关闭数据库连接 `mysql_close()`函数用于关闭之前...

    tomcat与mysql连接池的配置

    ### Tomcat与MySQL连接池的配置详解 #### 一、引言 在Java Web开发过程中,数据库连接管理是一项至关重要的任务。为了提高系统的性能和稳定性,通常会采用连接池技术来管理和复用数据库连接资源。本文将详细介绍...

    mysql服务端杀连接shell

    "mysql服务端杀连接shell"就是针对这类问题的一个解决方案,它通常是一个脚本,用于在服务端终止不必要的或异常的MySQL连接。 在描述中提到的博文链接(由于实际无法访问,这里不做具体分析),通常会包含如何编写...

Global site tag (gtag.js) - Google Analytics