首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果池中的连接在Spring中空闲超过一段时间,那么MySql是否有超时功能?

问如果池中的连接在Spring中空闲超过一段时间,那么MySql是否有超时功能?
EN

Stack Overflow用户
提问于 2015-11-18 16:34:57
回答 1查看 244关注 0票数 0

我有一个建立在spring framework+Hibernate上的tomcat服务器上的应用程序,但是当应用程序空闲了7天之后,如果我试图访问应用程序,就会出现以下错误。

org.hibernate.exception.JDBCConnectionException:无法执行查询

但是mysql在设备上运行,tomcat服务器运行的地方我检查了它,所以我重新启动了tomcat服务器,然后应用程序运行良好,我没有收到任何错误。

运行应用程序的database.xml文件

代码语言:javascript
复制
<bean id="dataSource" 
         class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
   <property name="url" value="${jdbc.url}"/>
   <property name="username" value="${jdbc.username}"/>
   <property name="password" value="${jdbc.password}"/>
</bean>

</beans>

当我想访问应用程序时,我不能重新启动服务器,对此有什么永久的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-18 22:40:55

您实际上没有一个连接池(这是您需要的)。您正在对单个连接进行硬编码。因此,一旦它闲置太久,一个连接就会死掉。

您需要使用数据库连接池。如果您说您正在使用Tomcat,您可能会考虑使用它的内置选项。

https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

代码语言:javascript
复制
<Resource name="jdbc/cciDataSource" 
    auth="Container" 
    type="javax.sql.DataSource"
    username="userAcctName"
    password="somePassword"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://someDatabaseHost/databaseName"
    maxActive="15"
    maxIdle="7" 
    validationQuery="select now()"
    maxWait="1000"
    removeAbandoned="true"
    removeAbandonedTimeout="15"
    testOnBorrow="true"
    logAbandoned="true" />
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33785443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档