2014-11-03 17 views
2

我已经到JBoss 7.2.0 standalone.xml创造了一个有界队列线程池终止如下:界队列线程池中的线程没有得到在JBoss关机

<subsystem xmlns="urn:jboss:domain:threads:1.1"> 
    <bounded-queue-thread-pool name="myThreadPool"> 
    <core-threads count="6000"/> 
    <queue-length count="1000"/> 
    <max-threads count="6000"/> 
    <keepalive-time time="60" unit="seconds"/> 
    </bounded-queue-thread-pool> 
</subsystem> 

后,我使用此,如AJP连接器执行如下:

<connector name="conn1" protocol="AJP/1.3" scheme="http" socket-binding="conn1" enabled="true" max-post-size="0" executor="myThreadPool" max-connections="2000"/> 
<connector name="conn2" protocol="AJP/1.3" scheme="http" socket-binding="conn2" enabled="true" executor="myThreadPool" max-connections="2000"/> 
<connector name="conn3" protocol="AJP/1.3" scheme="http" socket-binding="conn3" enabled="true" executor="myThreadPool" max-connections="2000"/> 

在结束时,插座连接器3的结合:

<socket-binding name="conn1" port="15007"/> 
<socket-binding name="conn2" port="15008"/> 
<socket-binding name="conn3" port="15009"/> 

W¯¯当我启动jboss并创建多个http请求时,每个请求线程创建为myThreadPool-threads-1,myThreadPool-threads-2等。但是,当我使用命令行关闭jboss时,这些线程不会终止。这里是我用来关机的命令:

%JBOSS_HOME%\bin\jboss-cli.bat --connect controller=10.10.54.85:9999 --commands=:shutdown 

由于这个原因,jboss-AS的java进程没有被终止。但是,当我简单地从connector中删除executor时,java进程已成功终止。有人可以建议我在服务器关闭时如何终止threadPool的所有线程?

回答

1

大概this bug是你的问题的原因,解决方法是设置:

org.apache.coyote.ajp.DEFAULT_CONNECTION_TIMEOUT 

以下内容添加到您的system-propertieshost.xmlstandalone.xmldomain.xml

<system-properties> 
    <property name="org.apache.coyote.ajp.DEFAULT_CONNECTION_TIMEOUT" value="600000"/> 
<system-properties> 

这个作品,除非我们不断向服务器发送请求。

另见:server hang during shutdown when specifying executor in connector