On 26/10/2010 16:08, Marc Wilmots wrote:
> Hi again.
> 
> I checked out the executor element, although, I can't find a lot of
> information about it.
> Would you mind explaining why using the executor element would fix the
> problem I am having?

The Executor will reduce the size of the thread pool once threads are idle.


p

> 2010/10/26 Pid <p...@pidster.com>
> 
>> On 26/10/2010 13:47, Marc Wilmots wrote:
>>> Hi Experts,
>>>
>>> I have the following setup:
>>>
>>>         Apache1
>>>       /         \
>>>   Apache2     Apache3
>>>       \          /
>>>         Tomcat1
>>
>> That's an interesting setup.  What does it achieve?
>>
>>> All Apaches are version 2.2.3 (RedHat)
>>
>> Time for an upgrade methinks.
>>
>>> Apache2 and Apache3 loadbalance Tomcat1 (6.0.18) with mod_jk (2.2.28).
>>
>> Same again for Tomcat.  Presumably you mean 1.2.28 for mod_jk.
>>
>>> In idle state the AJP connector of Tomcat1 only has 7 active connections.
>>> After launching a stress test of Tomcat1, it's AJP connector has reached
>>> maxThreads (200). After the stress test has finished, there are still 200
>>> active connections in the AJP connector.
>>>
>>> Because of this, apache2 and apache2 cannot receive any heartbeat message
>>> anymore from the AJP connector and mark Tomcat1 as dead. I can access
>>> perfectly through port 8080, so Tomcat1 isn't dead at all!
>>
>> Find and enable the Executor element in server.xml, configure your
>> Connector to reference it.
>>
>>> According to a threaddump, ALL TP-Processor-x threads are in the
>> following
>>> state:
>>>
>>> "TP-Processor41" daemon prio=10 tid=0x8ada7800 nid=0x1496 runnable
>>> [0x861eb000]
>>>    java.lang.Thread.State: RUNNABLE
>>>         at java.net.SocketInputStream.socketRead0(Native Method)
>>>         at java.net.SocketInputStream.read(SocketInputStream.java:129)
>>>         at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>>>         at
>> java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
>>>         at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
>>>         - locked <0xbab3ef10> (a java.io.BufferedInputStream)
>>>         at
>> org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:620)
>>>         at
>>> org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:558)
>>>         at
>>>
>> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:685)
>>>         at
>>>
>> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
>>>         at
>>>
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
>>>         at java.lang.Thread.run(Thread.java:619)
>>>
>>> LambaProbe confirms this and shows 200 AJP connections in KeepAlive
>> state.
>>>
>>> Please see my mod_jk and tomcat ajp connector configurations:
>>>
>>> server.xml:
>>>
>>> <Connector port="9009" protocol="AJP/1.3" redirectPort="8443"
>>> URIEncoding="UTF-8" />
>>>
>>> workers.properties:
>>>
>>> worker.list=liferay_alf
>>>
>>> worker.alfresco1.port=9009
>>> worker.alfresco1.host=10.133.23.4
>>> worker.alfresco1.type=ajp13
>>> worker.alfresco1.lbfactor=1
>>>
>>> worker.liferay_alf.type=lb
>>> worker.liferay_alf.balance_workers=alfresco1
>>> worker.liferay_alf.sticky_session=0
>>>
>>>
>>> In the Tomcat documentation I've seen that the AJP connector has a
>> property
>>> keepAliveTimeout. Although, before setting this, I would like to know
>> from
>>> you guys whether this looks as apache2 and apache3 continuously keep
>> sending
>>> keepAlive messages to the open AJP connections. If so, why is this? And
>> do
>>> you think setting keepAliveTimeout in Tomcat is the best solution?
>>
>> No, nothing to do with it.  See above.
>>
>>
>> p
>>
> 

Attachment: 0x62590808.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to