我知道使用UPS防止服务器立即关闭的重要性。如何在Java应用程序中侦听此类事件?
当电源停止时,我的UPS将在满负荷下继续运行5分钟。他们的服务器将继续运行,但我的应用程序将如何知道是时候开始正常关闭服务了?
这个特定的应用程序主要处理客户端到数据库事务。我主要关注的是在服务器在mysql事务中间立即断电的情况下数据损坏。以下几点是处理电力情况的正确方法吗?
有没有办法在恢复供电时自动重启服务器和应用程序,还是必须手动完成?
答案 0 :(得分:3)
处理UPS可能需要在操作系统级别使用SNMP或系统脚本等监督工具进行处理。
我在线查看,您可能会发现许多脚本在从UPS接收电源故障事件时执行某些操作。
您必须向您的JVM PID发送QUIT信号(在Unix / Linux上),在JVM端,您可以使用方法Runtime.addShutdownHook
注册关闭挂钩
如果使用像Spring这样的框架,它肯定已经注册了一些东西,并且如果配置的话会调用你的bean的destroy方法。
答案 1 :(得分:1)
在Java应用程序中创建java套接字以侦听来自localhost的已定义端口,并配置UPS软件以在断电时将事件发送到此端口。