Java服务重新启动4或5次

Java服务重新启动4或5次,java,java-service-wrapper,Java,Java Service Wrapper,我正在运行一个Java服务来轮询数据库中的数据。 在我的类中,我有一个线程,它每5秒查找数据库中的数据。。。 在特定的时间(比如下班后的下午6点),我让我的线程睡眠到某个配置的时间延迟 问题:当我让我的线程进入睡眠状态时,我的Java服务似乎重新启动了。。。 为什么我要启动4,5个JVM。。。 请帮我理解 ERROR | wrapper | 2013/12/21 15:40:10 | JVM did not exit on request, termination requested. ST

我正在运行一个Java服务来轮询数据库中的数据。 在我的类中,我有一个线程,它每5秒查找数据库中的数据。。。 在特定的时间(比如下班后的下午6点),我让我的线程睡眠到某个配置的时间延迟

问题:当我让我的线程进入睡眠状态时,我的Java服务似乎重新启动了。。。 为什么我要启动4,5个JVM。。。 请帮我理解

ERROR  | wrapper  | 2013/12/21 15:40:10 | JVM did not exit on request, termination requested.
STATUS | wrapper  | 2013/12/21 15:40:10 | JVM exited after being requested to terminate.
STATUS | wrapper  | 2013/12/21 15:40:14 | Launching a JVM...
INFO   | wrapper  | 2013/12/21 15:40:14 | Command: "C:\Windows\system32\java.exe" -Dfile.encoding=Cp1252 -Duser.language=en -Djava.library.path="../lib" -classpath "java-windows-OSN-service.jar;../lib/wrapper.jar;../lib/log4j-1.2.15.jar;../lib/sqljdbc4.jar" -Dwrapper.key="PHie-UB6SOJ9BBlfqJKjPuopQ40gFfnH" -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=6116 -Dwrapper.version="3.5.22-pro" -Dwrapper.native_library="wrapper" -Dwrapper.arch="x86" -Dwrapper.cpu.timeout="10" -Dwrapper.jvmid=4 -Dwrapper.lang.domain=wrapper -Dwrapper.lang.folder=../lang com.servion.service.ServiceController
INFO   | jvm 4    | 2013/12/21 15:40:15 | Control Event: 1
ERROR  | wrapper  | 2013/12/21 15:40:43 | Startup failed: Timed out waiting for a signal from the JVM.

这只是一种预感,但我的猜测是,当你让你的应用程序休眠时,你也会停止来自Tanukisoft的看门狗机制来响应探测,所以Tanuki认为你的应用程序被冻结了


看看独立应用程序与Tanukisoft的集成方法:

包装软件经常与启动的JVM通信,并检查它是否处于活动状态。当您使应用程序处于休眠状态时,通信失败,包装器通知进程挂起并尝试重新启动它。要避免这种情况,必须在包装器配置中配置wrapper.ping.timeout。要避免超时,请将属性设置为“0”

检查有关ping超时的更多详细信息-

如果您在启动应用程序时遇到任何超时问题 (默认超时值为30秒) 将包装器配置中的值更改为“0”,以避免重新启动应用程序。 包装器.启动.超时=0


查看有关启动超时的更多详细信息-

什么在运行JVM?很明显,您不是从命令行运行JVM,您使用什么将java应用程序包装到服务中?我使用tanukisoftware进行包装,我的服务是每5秒在db中查找数据…您是否尝试使用其他工具来运行您的服务,比如JavaExe?你读了吗?您是否实现了其中一种方法?哪一个?