文章分类:数据库
解决数据库连接池连接mysql时,每隔8小时mysql自动断开所有连接的问题
最近有个问题非常讨厌,我们的工程中使用自己的连接池连接mysql数据库,可mysql数据库每隔8小时就会自动断开所有链接,连接池就失效,
需要重新启动tomcat才有效,呵呵,服务器可不能老是用“人工智能”来干预啊,后来翻了一下mysql的手册,发现mysql有解决办法,下面就是最
简单的解决办法:
连接数据库的时候加上autoReconnect=true这个参数:
jdbc:mysql://localhost:3306/accounant?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
但是,在mysql手册中有这样一段话:
autoReconnect
驱动程序是否应尝试再次建立失效的和/
或死连接?
如果允许,对于在失效或死连接上发出的查询(属于当前事务),驱动程序将抛出异常,但在新事务的连接上发出下一个查询时,将尝试再连接。不推荐使用该特
性,这是因为,当应用程序不能恰当处理SQLExceptions时,它会造成与会话状态和数据一致性有关的副作用,设计它的目的仅用于下述情况,即,当
你无法配置应用程序来恰当处理因死连接和/或无效连接导致的SQLExceptions时。作为可选方式,可将MySQL服务器变量
“wait_timeout”设置为较高的值,而不是默认的8小时。 |
呵呵,不知道这种“副作用”会产生什么后果,难道会使tomcat崩溃??会产生“数据一致性”问题??
保险一点的办法还是增加“wait_timeout”这个值吧,把28800设置成更大的值,这样应该就不会有什么问题了吧。
注:目前我使用的是autoReconnect这种方式,未发现什么问题。
分享到:
相关推荐
数据库连接池是一种管理数据库连接的技术,它允许多个用户共享有限的数据库连接资源,而不是为每个请求创建新的连接。这样可以减少数据库的开销,提高应用性能。例如,Apache的DBCP、C3P0、HikariCP和Tomcat的JDBC...
连接池的创建是在系统初始化时通过预先创建一定数量的数据库连接,这些连接被组织成一个在用连接队列和一个空闲连接队列,以提高系统性能,避免每次操作数据库时都需要进行连接建立和释放的开销。 在C/S结构的系统...
MySQL数据库连接池是一种管理数据库连接的技术,用于高效利用数据库连接资源,避免频繁创建和关闭连接带来的性能开销。在Java软件开发中,通常使用Apache的Commons DBCP库来实现连接池。以下是对`BaseDao`类及其相关...
在选择数据库连接池时,开发者通常会考虑以下因素:性能、稳定性、易用性、资源消耗以及社区支持。Proxool以其轻量级特性受到一些小型项目的青睐,但可能在大型复杂系统中显得不足。DBCP是一个成熟的选择,广泛应用...
数据库连接池在初始化时会创建一定数量的数据库连接,并将其保存在一个池中,当应用程序需要访问数据库时,可以从连接池中获取一个已经建立好的连接,用完后再归还回池,而不是每次使用时都新建连接,这样能显著减少...
2. **配置数据库连接**:在“数据库连接”步骤中,选择“使用变量”选项,并在对应的字段中填入对应的参数名(如${DB_URL}、${DB_USER}和${DB_PASSWORD})。 3. **传递参数值**:在运行Kettle作业或转换时,通过...
DBCP(Apache Commons DBCP)是 Apache 软件基金会的一个开源项目,提供了一套实现数据库连接池的解决方案。除了 DBCP,还有其他流行的连接池实现,如 C3P0、HikariCP 和 Druid。它们都提供了类似的功能,但性能和...
这通常是由于每个线程创建一个独立的数据库连接导致的,当并发线程数量增加时,连接池中的连接数量也随之增加,如果超过服务器允许的最大连接数,就可能导致应用程序无法正常工作,甚至引发“Too many connections”...
数据库连接池的基本概念是在应用程序启动时预先创建一定数量的数据库连接,存储在一个池中,当需要与数据库交互时,应用程序可以从池中获取一个已存在的连接,而不是每次都去创建新的连接。这样可以避免频繁的连接...
通过这样的设置,我们可以利用Hibernate的便捷性和Proxool的连接池管理能力,有效应对MySQL的8小时断开问题,提高系统的稳定性和性能。在实际项目中,还需要根据服务器资源、并发访问量等因素调整连接池的相关参数,...
mchange-commons-java-0.2.19.jar\c3p0-0.9.5.5.jar\commons-dbcp2-2.9.0.jar\commons-logging-1.2.jar\commons-pool2-2.11.1.jar\
综上所述,"kettle下MySQL数据库驱动.zip"文件是为了解决Kettle在与MySQL数据库交互时遇到的连接问题,通过将驱动放入指定的lib目录,可以确保Kettle能够正确识别并使用MySQL的JDBC驱动,从而实现数据的提取、转换和...
当你的Java应用运行时,Log4j会通过DBCP连接池连接到MySQL数据库,并将日志信息存储到`log`表中。这样,你可以方便地对日志进行集中管理和分析,有助于系统维护和故障排查。 这个过程涉及的知识点包括: 1. Log4j的...
这样做的好处是,连接可以从连接池中获取而不是每次请求时都创建新的连接,从而减少了数据库资源的消耗。 5. `findAll()` 方法:这个方法展示了如何执行SQL查询并处理结果集。它首先打开数据库连接,然后创建一个预...
- 数据库连接池的实现,提高性能和资源利用率。 - 错误处理和事务管理的机制。 了解这些内容,不仅可以提升对数据库接口设计的理解,还能帮助开发者更高效地利用ODBC来开发跨平台的应用程序。同时,对于数据库管理...
Java数据库连接池(Database Connection Pool)是Java应用中用于管理数据库连接的重要技术,它通过复用已存在的数据库连接,减少了创建和销毁连接的开销,从而显著提升了应用程序的性能和效率。BoneCP是一款高效的...
在实际应用中,通常会使用连接池来管理数据库连接,例如Apache的DBCP或C3P0,这样可以更高效地管理和重用数据库连接,减少系统资源的消耗。 总的来说,ojdbc6.jar和mysql-connector-java-5.1.7-bin.jar是Java连接...
同时,根据数据库的安全策略,可能需要配置额外的参数,比如设置连接池或者使用SSL加密连接。 总的来说,这三个数据库的jar包为Java开发者提供了与SQL Server、MySQL和Oracle数据库通信的基础,使得开发人员可以...