作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个在 tomcat 上的 amazon ec2 上运行的 webapp hibernate 和休息,我的 mySQL 是通过 amazon rds 的独立实例。
一旦我启动我的 web 应用程序 - 一切正常,但最近我在我的数据库上配置了每日备份,然后开始看到我的 web 应用程序连接到 mySQL 时出现问题。
基本上,只有在我的 mysql 实例重新启动(备份)之前启动我的 webapp 时才会出现问题。然后在 mySQL 出于某种原因重新启动后,从我的 webapp 到它的任何连接都失败了。
一旦我重新启动我的 ec2 虚拟机,一切都会解决(如果我也重新启动 tomcat,它可能会解决,但我还没有尝试过)
如何确保我的 webapp 在 mysql 重启后连接回 mysql?
这是我写入日志的内容:
21-May-2015 11:42:27.857 WARN [http-nio-8080-exec-2] org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions SQL Error: 0, SQLState: 08S01
21-May-2015 11:42:27.857 ERROR [http-nio-8080-exec-2] org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions Communications link failure
The last packet successfully received from the server was 200,187 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
对深入研究有什么建议吗?
最佳答案
您应该使用连接池。对于 Hibernate,您可以使用 c3p0。在您的 hibernate 属性中设置以下内容
hibernate.connection.provider_class = org.hibernate.connection.C3P0ConnectionProvider
然后,在 c3p0.properties 文件中,将这些属性设置为在数据库关闭时每 3 秒无限期重新连接:
c3p0.acquireRetryAttempts = 0
c3p0.acquireRetryDelay = 3000
c3p0.breakAfterAcquireFailure = false
参见 this section有关如何从数据库中断中恢复的更多详细信息。
关于java - MySQL 重启后 Hibernate 应用程序无法连接到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30380878/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!