Well, iirc, the threads are not used only for requests, but also for responses. Can you show the full configuration of the thread pool ? In which file did you put the bean ?
On Tue, Feb 24, 2009 at 10:16, muvvala <[email protected]> wrote: > > Thanks GNodet for you quick help. > > But, I am facing a small problem as follows: > > While load testing we got the following stack trace for some reason. > In the stack trace, we observed RejectedExecutionPolicy is being used by the > threadPool to process the threads. But, Rejcted execution comes only if the > no of concurrent requestes exceeds maximum pool size. But we are shure that > no of concurrent requests are less than maximum pool size. > > So i thought that, as the threads are being waited, those are not being used > again. Is there any other reason for this behaviour(Rejected execution). > > Thanks in Advance. > > > org.xml.sax.SAXParseException: The element type "BR" must be terminated by > the matching end-tag "</BR>". > at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) > at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) > at javax.xml.parsers.DocumentBuilder.parse(Unknown Source) > at > org.apache.servicemix.soap.marshalers.SoapReader.readSoapUsingDom(SoapReader.java:95) > at > org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:80) > at > org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:73) > at > org.apache.servicemix.http.processors.ProviderProcessor.process(ProviderProcessor.java:162) > at > org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489) > at > org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441) > at > org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) > at > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593) > at > org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) > at > org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176) > at > org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) > at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy.rejectedExecution(ThreadPoolExecutor.java:1497) > at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:407) > at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:880) > at > org.apache.servicemix.executors.impl.ExecutorImpl.execute(ExecutorImpl.java:42) > at > org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue.enqueue(SedaQueue.java:128) > at > org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.enqueuePacket(SedaFlow.java:191) > at > org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doSend(SedaFlow.java:171) > at > org.apache.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:126) > at > org.apache.servicemix.jbi.nmr.DefaultBroker.sendExchangePacket(DefaultBroker.java:281) > at > org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:793) > at > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:381) > at > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:456) > at > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:428) > at > org.apache.servicemix.common.EndpointDeliveryChannel.sendSync(EndpointDeliveryChannel.java:88) > at > org.apache.servicemix.common.endpoints.SimpleEndpoint.sendSync(SimpleEndpoint.java:71) > at > com.dnb.eip.servicemix.patterns.MyStaticRoutingSlipEndPoint.processInOut(MyStaticRoutingSlipEndPoint.java:249) > at > org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:109) > at > org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489) > at > org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441) > at > org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46) > at > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593) > at > org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174) > at > org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176) > at > org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) > at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) > at > edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690) > at java.lang.Thread.run(Thread.java:595) > > > > > > > > muvvala wrote: >> >> hi , >> I have created a new EIP component. I configured the thread pool for this >> component as follows: >> >> <bean class="org.apache.servicemix.executors.impl.ExecutorConfig"> >> <property name="corePoolSize" value="25"/> >> <property name="maximumPoolSize" value="75"/> >> <property name="queueSize" value="0"/> >> </bean> >> >> The problem is, when I sent a request to this component using send(), the >> request is being processed sucessfully but in the Jconsole I could see the >> following stack trace related to seda-flow. >> >> Name: pool-flow.seda.servicemix-my-eip-thread-13 >> State: TIMED_WAITING on >> >> edu.emory.mathcs.backport.java.util.concurrent.synchronousqueue$n...@551b97 >> Total blocked: 0 Total waited: 2 >> >> Stack trace: >> java.lang.Object.wait(Native Method) >> java.lang.Object.wait(Object.java:432) >> edu.emory.mathcs.backport.java.util.concurrent.TimeUnit.timedWait(TimeUnit. >> >> java:301) >> edu.emory.mathcs.backport.java.util.concurrent.SynchronousQueue$Node.attemp >> >> t(SynchronousQueue.java:374) >> edu.emory.mathcs.backport.java.util.concurrent.SynchronousQueue$Node.waitFo >> >> rPut(SynchronousQueue.java:402) >> edu.emory.mathcs.backport.java.util.concurrent.SynchronousQueue.poll(Synchr >> >> onousQueue.java:566) >> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.getTask(T >> >> hreadPoolExecutor.java:498) >> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.ru >> >> n(ThreadPoolExecutor.java:689) >> java.lang.Thread.run(Thread.java:595). >> >> After some time(approx 1 min) all the threads are getting cleared. Is this >> a default behaviour or did i missed anything. >> >> > > -- > View this message in context: > http://www.nabble.com/TIMED_WAITING-of-component-thread-pools-tp22176645p22178532.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. > > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ Open Source SOA http://fusesource.com
