我正在运行一个Java服务来从数据库中轮询数据。在我的类中,我有一个线程,它每5秒在db中查找一次数据……在特定的时间(比如非工作时间的下午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.发布于 2014-01-02 20:03:04
包装器软件经常与启动的JVM通信,并检查它是否处于活动状态。当您使应用程序休眠时,该通信将失败,包装器将通知进程挂起并尝试重新启动它。为了避免这种情况,您必须在包装器配置文件中配置wrapper.ping.timeout。为避免超时,请将该属性设置为"0“。
查看有关ping超时的更多详细信息- wrapper.ping.timeout configuration
如果您在启动应用程序时遇到任何超时问题(默认超时值为30秒),请将wrapper conf中的值更改为"0“,以避免重新启动应用程序。wrapper.startup.timeout=0
查看有关启动超时的更多详细信息- wrapper.startup.timeout configuration
发布于 2013-12-21 19:09:54
这只是我的直觉,但我的猜测是,当你让你的应用程序休眠时,你也会停止Tanukisoft的看门狗机制来响应探测,所以Tanuki认为你的应用程序被冻结了。
看看独立应用程序与Tanukisoft的集成方法:http://wrapper.tanukisoftware.com/doc/english/integrate.html
https://stackoverflow.com/questions/20718058
复制相似问题