Java 如何处理数据库崩溃(Glassfish/MySQL)?
我有一个包含Glassfish 3.1.2.2、MySQL数据库和Swing客户端应用程序的三层应用程序。是否有可能处理数据库服务器崩溃 我试图在应用程序运行期间停止MySQL服务。然后,每当我试图通过facade会话bean访问数据库时,我都会得到javax.ejb.EJBAccessException异常 我想通知用户数据库当前已关闭。此外,我希望将我的应用程序设置为“睡眠模式”,直到数据库启动并再次运行 处理这种情况的好方法(可能很简单)是什么Java 如何处理数据库崩溃(Glassfish/MySQL)?,java,mysql,exception,glassfish,Java,Mysql,Exception,Glassfish,我有一个包含Glassfish 3.1.2.2、MySQL数据库和Swing客户端应用程序的三层应用程序。是否有可能处理数据库服务器崩溃 我试图在应用程序运行期间停止MySQL服务。然后,每当我试图通过facade会话bean访问数据库时,我都会得到javax.ejb.EJBAccessException异常 我想通知用户数据库当前已关闭。此外,我希望将我的应用程序设置为“睡眠模式”,直到数据库启动并再次运行 处理这种情况的好方法(可能很简单)是什么 提前谢谢你的帮助 在它自己的连接池上将监视数
提前谢谢你的帮助 在它自己的连接池上将监视数据库的状态。您可以创建一个拦截器,并在db下降时拾取。容器将尝试重新连接,但您不一定知道何时成功。一旦检测到错误,就需要在某处设置信号量。然后,您必须启动一个计时器来定期检查数据库的状态,并在信号量返回时重置它。最后,您必须编写应用程序以尊重信号量 这是一个高层次的建议。祝你好运 或者,您可以使用JMX钩住所有事件。。。但是我不确定。A)确保配置Glassfish连接池以实现自动恢复/重新连接 在Glassfish JDBC连接池配置中,设置以下值:
- 属性:
是否需要连接验证,以秒为单位验证atmost一次,连接创建重试尝试,连接验证方法,连接创建重试间隔(以秒为单位),ping
步骤:
http://localhost:4848
(或使用安装过程中指定的任何端口- Zabbix开源内置了mySQL监控和警报功能-是轻量级的,但需要设置和配置
- Hyperic开源具有用于mySQL监控和内置警报的扩展插件-重量很重,安装和配置可能很复杂
- Nagois开放源码是*nix操作系统的默认版本-重量很重,安装和配置可能很复杂
- 一个EJB计时器,用于对DB运行计划的简单测试查询——如果失败,则发送警报(通过JMX/Google Calendar/Java Mail/SMS网关API)。或者使用Quartz开源调度器执行相同的任务
好的建议:有趣,你的评论让我发笑;-)我把标题从“闹翻”改为“撞车”……谢谢你的建议,普雷斯顿。这听起来很复杂,但我会尝试使用JMX:-)嗨,格伦,非常感谢你详尽的回答:-)我会尝试一下你的建议。