HTTP consumer delays sending response under load
------------------------------------------------
Key: SMXCOMP-641
URL: https://issues.apache.org/activemq/browse/SMXCOMP-641
Project: ServiceMix Components
Issue Type: Bug
Components: servicemix-http
Affects Versions: servicemix-http-2008.01
Environment: Windows, Intel Dual core desktop.
Reporter: Anto Paul
ServiceMix http consumer endpoint queues up all the responses until all the
requests are processed and response is sent as a batch at the end after
finishing processing all requests.. This happens when the no of request sent is
higher than configured thread pool and http endpoint is doing some time taking
operation to give the response.
To test this I configured servicemix core thread pool and max thread pool
to 2 and fired request from 10 HTTP client threads. The result is all the
response is returned after all the request processing is done. ie. first client
and last client gets the response at same time.
The test sa is http consumer su --> MessageListener su.
send() method is used to send reply back to http consumer.
To simulate time delay in MessageListener, it sleeps for 3 sec. before
sending response back to http endpoint.
Though setting ServiceMix thread pool to a higher value than no of
concurrent requests solves this problem, this is not a permanent solution as
increasing thread count has a limit.
This is a major issue for us. I spend lot of time debugging it and it seems
that a separate thread pool is needed to handle responses as all threads are
busy in handling requests.
Tested this in Apache ServiceMix 3.2.1 and Fuse ESB 3.4.0.4 with SEDA flow.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.