Windows服务 – java失败,服务进程没有,没有人知道有一个失败

我们有一个作为服务运行的Web代理。 这是一个直接的EXE,它是一个打包的Java应用程序。

有时候,我们会在应用程序生成的日志文件中得到这个结果,并且代理停止工作。

26-11-2013 09:42:48,661 [ServerThread]错误pe – 无法启动服务器java.net.SocketException:无法识别的Windows套接字错误:0:JVM_Bind在java.net.PlainSocketImpl.socketBind(本地方法)在java.net .PlainSocketImpl.bind(PlainSocketImpl.java:365)at java.net.ServerSocket.bind(ServerSocket.java:319)at java.net.ServerSocket。(ServerSocket.java:185)at java.net.ServerSocket。(ServerSocket。 java:141)在pe.a(未知源)在oe.run(未知源)

但EXE愉快地继续运行。 发生此Java故障时是否有任何使EXE失败的一般方法,以便Windows本机重新启动失败的服务能够启动? 显然,如果软件供应商必须build立这个模型,那么温柔的读者也不可能知道答案。 我只是想知道是否有一个我不知道的Java标志。

看起来它是用procrun构build的,我想。 我说的基于connector.exe文件上运行的strings.exe。

我知道一个更完整的解决scheme将是日志文件监视,提醒和可能的自动修复。 不过,今天我不能做这件事。

这是我们作为系统pipe理员面临的那些典型的肮脏错误之一。 当function/应用程序死机时,进程正常运行。

你可以采取两种不同的方法:

  1. 观察日志文件并对典型的错误情况做出反应
  2. 在服务器上监视服务function并对失败做出反应

在这两种情况下,你都需要避免误报。

一个适当的反应将是服务重启 – 你必须触发 – 希望在你的情况下工作。