我们有一个作为服务运行的网络代理。它是一个直接的 EXE,其中包含一个打包的 java 应用程序。
有时,我们在应用程序生成的日志文件中得到这个,代理停止工作。
26-11-2013 09:42:48,661 [ServerThread] 错误 pe - 无法启动服务器 java.net.SocketException:无法识别的 Windows 套接字错误:0:java.net 上的 JVM_Bind.PlainSocketImpl.socketBind(本机方法) .PlainSocketImpl.bind(PlainSocketImpl.java:365) 在 java.net.ServerSocket.bind(ServerSocket.java:319) 在 java.net.ServerSocket.(ServerSocket.java:185) 在 java.net.ServerSocket.(ServerSocket. java:141) 在 pe.a(Unknown Source) at oe.run(Unknown Source)
但EXE愉快地继续运行。发生此 Java 故障时,是否有任何一般方法可以使 EXE 失败,以便 Windows 本机能够重新启动失败的服务?显然,如果软件供应商必须在其中构建它,那么您,温柔的读者,是不可能知道答案的。我只是想知道是否有一个我不知道的 Java 标志。
我认为它看起来像是用procrun构建的。我说的是基于在 connector.exe 文件上运行 strings.exe。
我知道更完整的解决方案是日志文件监控,带有警报和可能的自动修复。然而,这不是我今天能做的事情。
这是我们作为系统管理员面临的那些典型的令人讨厌的错误之一。当功能/应用程序停止时,进程启动并运行。
您可以采取两种不同的方法:
在这两种情况下,您都需要避免误报。
一个适当的反应是重启服务——你必须触发它——希望它适用于你的情况。