Windows-Server-2008-R2

Windows 服務 - java 失敗,服務程序沒有,沒有人知道有失敗

  • December 1, 2013

我們有一個作為服務執行的網路代理。它是一個直接的 EXE,其中包含一個打包的 java 應用程序。

有時,我們在應用程序生成的日誌文件中得到這個,代理停止工作。

26-11-2013 09:42:48,661

$$ ServerThread $$錯誤 pe - 無法啟動伺服器 java.net.SocketException:無法辨識的 Windows 套接字錯誤:0:JVM_Bind at java.net.PlainSocketImpl.socketBind(Native Method) at 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) at pe.a(Unknown Source) at oe.run(未知來源)

但EXE愉快地繼續執行。發生此 Java 故障時,是否有任何一般方法可以使 EXE 失敗,以便 Windows 本機能夠重新啟動失敗的服務?顯然,如果軟體供應商必須在其中建構它,那麼您,溫柔的讀者,是不可能知道答案的。我只是想知道是否有一個我不知道的 Java 標誌。

我認為它看起來像是用procrun建構的。我說的是基於在 connector.exe 文件上執行 strings.exe。

我知道更完整的解決方案是日誌文件監控,帶有警報和可能的自動修復。然而,這不是我今天能做的事情。

這是我們作為系統管理員面臨的那些典型的令人討厭的錯誤之一。當功能/應用程序停止時,程序啟動並執行。

您可以採取兩種不同的方法:

  1. 觀察日誌文件並對典型的錯誤情況做出反應
  2. 在伺服器上監控服務功能並對故障做出反應

在這兩種情況下,您都需要避免誤報。

一個適當的反應是重啟服務——你必須觸發它——希望它適用於你的情況。

引用自:https://serverfault.com/questions/557580