Hi Fabian,

Do you have any idea because we have similar problem?

Tomasz Prus

2008/11/21 Fabian Crabus <[EMAIL PROTECTED]>:
> Hi,
>
> we see a very strange behaviour in our ServiceMix configuration. We process
> a few thousand messages
> and then after some time ServiceMix comes to a complete halt.
>
> The thread dump shows something like this:
>
> "pool-component.resequencer-rulebaseRouter-thread-1" prio=5 tid=0x55 nid=0x0
> timed_waiting []
>        java.lang.Thread$State: TIMED_WAITING
>        at sun.misc.Unsafe.park(Native Method)
>        at
> java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)
>        at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.
> java:1879)
>        at
> java.util.concurrent.ArrayBlockingQueue.poll(ArrayBlockingQueue.java:286)
>        at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.accept(DeliveryChannelImpl.java:270)
>        at
> org.apache.servicemix.common.AsyncBaseLifeCycle.pollDeliveryChannel(AsyncBaseLifeCycle.java:314)
>        at
> org.apache.servicemix.common.AsyncBaseLifeCycle$1.run(AsyncBaseLifeCycle.java:300)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>        at java.lang.Thread.run(Thread.java:595)
>
> "pool-flow.seda.resequencer-rulebaseRouter-thread-9" prio=5 tid=0x9c nid=0x0
> waiting []
>        java.lang.Thread$State: WAITING
>        at sun.misc.Unsafe.park(Native Method)
>        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
>        at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:
> 1841)
>        at
> java.util.concurrent.ArrayBlockingQueue.put(ArrayBlockingQueue.java:368)
>        at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:663)
>        at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
>        at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
>        at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>        at java.lang.Thread.run(Thread.java:595)
>
> Nothing is being processed. All threads are waiting. We've changed the
> thread pool configuration to these values:
>      <bean class="org.apache.servicemix.executors.impl.ExecutorConfig">
>        <property name="corePoolSize" value="30"/>
>        <property name="maximumPoolSize" value="-1"/>
>        <property name="queueSize" value="512"/>
>      </bean>
>
> As far as I understand there are several ways to get to these errors:
> - not sending DONE or ERROR
> - having to few threads
> - deadlock caused by circular sendSync calls
>
> We're examining our code if one of these could be the culprit.
>
> But are there other situation where this could happen (even though there are
> "limitless" potential threads available -> maximumPoolSize=-1)?
> And another thing I don't understand in the thread dump:
> we only have one thread "pool-component.resequencer-rulebaseRouter-thread-1",
> i.e. no other pool-component threads. Is that normal?
> Why is it different to the "pool-seda" threads?
>
> Thanks for any pointers,
> Fabian
>

Reply via email to