包装器ping超时和骡子被困

时间:2012-04-04 00:46:34

标签: mule java-service-wrapper

如标题所述。之后,包装器无法启动另一个JVM,并且我的mule服务被停止了。和线索?

服务器上有一点负载,但负载不应太多。

以下是相关日志:

  

发送数据包PING:ok
  读包PING:ok
  获得JVM的ping响应
  发送数据包PING:ping
  发送数据包PING:ping
  发送数据包PING:ping
  发送数据包PING:ping
  发送数据包PING:ping
  发送数据包PING:ping
  发送数据包PING:ping
  JVM显示为挂起:等待来自JVM的信号超时。
  JVM没有按请求退出,终止服务器侦听端口32002   在启动另一个JVM之前等待5秒。
  被困的信号。细节:
  信号编号= 17(SIGCHLD),source =“unknown”
  收到SIGCHLD,检查JVM进程状态。
  JVM退出以响应信号SIGKILL(9)。
  JVM进程以代码1退出,但包装器退出代码已经是1   无法启动JVM
  < - Wrapper Stopped

这是我重启mule使用时的日志:mule start。

Working directory set to: /root
Spawning intermediate process...
Spawning daemon process...
--> Wrapper Started as Daemon
Using tick timer.
server listening on port 32000.
Classpath element, wrapper.java.classpath.1, does not exist: %MULE_LIB%
Command[0] : java
Command[1] : -Dmule.home=/opt/skybus
Command[2] : -Dmule.base=/opt/skybus
Command[3] : -Djava.net.preferIPv4Stack=TRUE
Command[4] : -XX:MaxPermSize=128m
Command[5] : -Djava.endorsed.dirs=/opt/skybus/lib/endorsed
Command[6] : -Xms2048m
Command[7] : -Xmx2048m
Command[8] : -Djava.library.path=%LD_LIBRARY_PATH%:/opt/skybus/lib/boot
Command[9] : -classpath
Command[10] : %MULE_LIB%:/opt/skybus/conf:/opt/skybus/lib/boot/mule-module-boot-        3.2.1.jar:/opt/skybus/lib/boot/log4j-1.2.14.jar:/opt/skybus/lib/boot/mule-module-reboot-3.2.1.jar:/opt/skybus/lib/boot/wrapper-3.2.3.jar:/opt/skybus/lib/boot/commons-cli-1.2.jar:/opt/skybus/lib/boot/mule-module-logging-3.2.1.jar
Command[11] : -Dwrapper.key=XmncggXh3D4jnC8q
Command[12] : -Dwrapper.port=32000
Command[13] : -Dwrapper.jvm.port.min=31000
Command[14] : -Dwrapper.jvm.port.max=31999
Command[15] : -Dwrapper.debug=TRUE
Command[16] : -Dwrapper.pid=30321
Command[17] : -Dwrapper.version=3.2.3
Command[18] : -Dwrapper.native_library=wrapper
Command[19] : -Dwrapper.service=TRUE
Command[20] : -Dwrapper.cpu.timeout=10
Command[21] : -Dwrapper.jvmid=1
Command[22] : org.mule.module.reboot.MuleContainerBootstrap
Command[23] : start0
Launching a JVM...
Starting the Mule Container...
WrapperManager class initialized by thread: main  Using classloader: sun.misc.Launcher$AppClassLoader@192d342
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

Wrapper Manager: JVM #1
Running a 32-bit JVM.
Wrapper Manager: Registering shutdown hook
Wrapper Manager: Using wrapper
Load native library.  One or more attempts may fail if platform specific libraries do not exist.
Loaded native library: libwrapper-linux-x86-32.so
Calling native initialization method.
Inside native WrapperManager initialization method
Java Version   : 1.6.0_10-beta-b25 Java HotSpot(TM) Server VM
Java VM Vendor : Sun Microsystems Inc.

WrapperManager.start(org.mule.module.reboot.MuleContainerWrapper@192b996, args["start0"]) called by thread: main
Control event monitor thread started.
Startup runner thread started.
Communications runner thread started.
Open socket to wrapper...Wrapper-Connection
Opened Socket from 31000 to 32000
Send a packet KEY : XmncggXh3D4jnC8q
handleSocket(Socket[addr=/127.0.0.1,port=32000,localport=31000])
accepted a socket from 127.0.0.1 on port 31000
read a packet KEY : XmncggXh3D4jnC8q
Got key from JVM: XmncggXh3D4jnC8q
send a packet LOW_LOG_LEVEL : 1
send a packet PING_TIMEOUT : 30
send a packet PROPERTIES : (Property Values)
Start Application.
send a packet START : start
Received a packet LOW_LOG_LEVEL : 1
Wrapper Manager: LowLogLevel from Wrapper is 1
Received a packet PING_TIMEOUT : 30
PingTimeout from Wrapper is 30000
Received a packet PROPERTIES : (Property Values)
Received a packet START : start
calling WrapperListener.start()
Waiting for WrapperListener.start runner thread to complete.
WrapperListener.start runner thread started.
2012-04-01 14:53:42,297 INFO [org.mule.module.launcher.MuleContainer] - <
**********************************************************************
* Mule ESB and Integration Platform                                  *
* Version: 3.2.1 Build: 23380                                        *
* MuleSoft, Inc.                                                     *
* For more information go to http://www.mulesoft.org                 *
*                                                                    *
* Server started: 12-4-1 下午2:53                                    *
* JDK: 1.6.0_10-beta (mixed mode)                                    *
* OS: Linux (2.6.18-92.el5xen, i386)                                 *
* Host: localhost.localdomain (10.123.75.149)                        *
**********************************************************************>

2 个答案:

答案 0 :(得分:2)

从第一个日志文件

,我可以看到JVM对Wrapper的ping请求没有响应:

send a packet PING : ping
send a packet PING : ping
send a packet PING : ping
send a packet PING : ping
send a packet PING : ping
send a packet PING : ping
send a packet PING : ping

所以Wrapper假定JVM被冻结,因此尝试停止并重新启动它。但事实上,由于一些重负载,机器Wrapper甚至无法启动另一个JVM实例。 您可以扩展wrapper.ping.timeout,如果您的计算机上频繁发生重负载,这将为JVM提供更多的ping请求时间。

http://wrapper.tanukisoftware.com/doc/english/prop-ping-timeout.html

希望这可以帮助你。

干杯

答案 1 :(得分:0)

from https://wrapper.tanukisoftware.com/doc/english/prop-backend-type.html

我们最近在生产中遇到了这个问题,奇怪的是3个容器中有2个失败了。启用JVM日志后,除了JVM在10分钟后退出并尝试重新启动之外,没有太多有关正在发生的事情的信息。

将m子配置wrapper.backend.type = PIPE更改为AUTO后,问题似乎已解决。

我们还计划增加超时时间,增加内存等,但这对我们现在有效。