7

我正在运行 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.
4

2 回答 2

7

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

检查有关 ping timeout -wrapper.ping.timeout 配置的更多详细信息

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

检查有关启动超时的更多详细信息 - wrapper.startup.timeout 配置

于 2014-01-02T12:03:03.767 回答
0

只是一种预感,但我的猜测是,当您让应用程序休眠时,您也会停止 Tanukisoft 的看门狗机制以响应探测,因此 Tanuki 认为您的应用程序已冻结。

看看 Tanukisoft 独立应用程序的集成方法:http ://wrapper.tanukisoftware.com/doc/english/integrate.html

于 2013-12-21T11:09:54.277 回答