You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by jbi joe <jo...@daggerpoint.net> on 2008/03/11 09:02:40 UTC

threadpool overflow

Using the JConsole to figure out why I am getting an 
"Out of Memory Error" - Unable to create thread
After about 3000 async calls to services my servicemix stops
processing.  I can see the threadpool grow and grow and grow
in the JConsole thread display.   I have several service assemblies
that are connected to lw-container that seem to work fine without
a heavy load.    I am using ODE BPEL to do both syncronous and
asyncronous ME.  Im using version SMX 3.2 and ODE 1.1.1 engine.
Under very little load things work OK.  HOWEVER, I never see threads
returned to the threadpool.  My JConsole always shows a constant
rise till EXHAUSTION.  Any Help greatly appreciated...
SHould I be doing some sort of close from the BPEL?  BPEL is always
starting the transactions.    The lw-container assemblies are always
replying
to the "in" message by replying to the "out" portion of the inout ME.   The
ODE/BPEL always provides a DONE status upon transaction comletion.
Seems the magic number of threads I can do is 3000, albeit I have SMX set to
MAX of 1000.  In any case when 3000 is reached I begine getting the
"Out of Memory error - Unable to create thread.
Again any help greatly appreciated..
TIA
-- 
View this message in context: http://www.nabble.com/threadpool-overflow-tp15975678s12049p15975678.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: threadpool overflow

Posted by jbi joe <jo...@daggerpoint.net>.
Here is what Im doing, must be something wrong.
Servicemix-lwcontainer based pojo sends
and InOnly to a BPEL based SA
BPEL based BPEL sends a InOut ( Is this a sendSync ? )
to another pojo also a lwcontainer based SA.
The invoke clause has an InputVariable and an
OutputVariable.   The BPEL gets the output back and
then sends another InOUT back to the original pojo
that started the process, which it gets. 
Looping in this process causes thread pool to keep on
growing.    Also worthy of note is that the originating
pojo contains a run thread that contains a while loop
to keep on sending the InOnly NMs to the BPEL..
How can I debug this?


gnodet wrote:
> 
> Such problems are usually caused by a sendSync that is never unlocked
> because the target component does not handle the MEP correctly.
> *All* jbi exchanges must be terminated with a DONE or an ERROR status.
> Check your lightweight and servicemix-bean components you wrote to make
> sure they *always* send the exchange back with the correct status.
> 
> Note that the settings for configuring thread pools are usually *per*
> threadpool.
> Which means mostly: each component and each seda queue.  So if you put
> 1000, this means you'll have roughtly 2 * n * 1000 theads, where n is the
> number
> of JBI components deployed.   Usually, using 32 or 64 is really
> sufficient.
> 
> On Tue, Mar 11, 2008 at 9:02 AM, jbi joe <jo...@daggerpoint.net> wrote:
>>
>>  Using the JConsole to figure out why I am getting an
>>  "Out of Memory Error" - Unable to create thread
>>  After about 3000 async calls to services my servicemix stops
>>  processing.  I can see the threadpool grow and grow and grow
>>  in the JConsole thread display.   I have several service assemblies
>>  that are connected to lw-container that seem to work fine without
>>  a heavy load.    I am using ODE BPEL to do both syncronous and
>>  asyncronous ME.  Im using version SMX 3.2 and ODE 1.1.1 engine.
>>  Under very little load things work OK.  HOWEVER, I never see threads
>>  returned to the threadpool.  My JConsole always shows a constant
>>  rise till EXHAUSTION.  Any Help greatly appreciated...
>>  SHould I be doing some sort of close from the BPEL?  BPEL is always
>>  starting the transactions.    The lw-container assemblies are always
>>  replying
>>  to the "in" message by replying to the "out" portion of the inout ME.  
>> The
>>  ODE/BPEL always provides a DONE status upon transaction comletion.
>>  Seems the magic number of threads I can do is 3000, albeit I have SMX
>> set to
>>  MAX of 1000.  In any case when 3000 is reached I begine getting the
>>  "Out of Memory error - Unable to create thread.
>>  Again any help greatly appreciated..
>>  TIA
>>  --
>>  View this message in context:
>> http://www.nabble.com/threadpool-overflow-tp15975678s12049p15975678.html
>>  Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> 
> -- 
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> 
> 

-- 
View this message in context: http://www.nabble.com/threadpool-overflow-tp15975678s12049p16066066.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: threadpool overflow

Posted by Guillaume Nodet <gn...@gmail.com>.
Such problems are usually caused by a sendSync that is never unlocked
because the target component does not handle the MEP correctly.
*All* jbi exchanges must be terminated with a DONE or an ERROR status.
Check your lightweight and servicemix-bean components you wrote to make
sure they *always* send the exchange back with the correct status.

Note that the settings for configuring thread pools are usually *per*
threadpool.
Which means mostly: each component and each seda queue.  So if you put
1000, this means you'll have roughtly 2 * n * 1000 theads, where n is the number
of JBI components deployed.   Usually, using 32 or 64 is really sufficient.

On Tue, Mar 11, 2008 at 9:02 AM, jbi joe <jo...@daggerpoint.net> wrote:
>
>  Using the JConsole to figure out why I am getting an
>  "Out of Memory Error" - Unable to create thread
>  After about 3000 async calls to services my servicemix stops
>  processing.  I can see the threadpool grow and grow and grow
>  in the JConsole thread display.   I have several service assemblies
>  that are connected to lw-container that seem to work fine without
>  a heavy load.    I am using ODE BPEL to do both syncronous and
>  asyncronous ME.  Im using version SMX 3.2 and ODE 1.1.1 engine.
>  Under very little load things work OK.  HOWEVER, I never see threads
>  returned to the threadpool.  My JConsole always shows a constant
>  rise till EXHAUSTION.  Any Help greatly appreciated...
>  SHould I be doing some sort of close from the BPEL?  BPEL is always
>  starting the transactions.    The lw-container assemblies are always
>  replying
>  to the "in" message by replying to the "out" portion of the inout ME.   The
>  ODE/BPEL always provides a DONE status upon transaction comletion.
>  Seems the magic number of threads I can do is 3000, albeit I have SMX set to
>  MAX of 1000.  In any case when 3000 is reached I begine getting the
>  "Out of Memory error - Unable to create thread.
>  Again any help greatly appreciated..
>  TIA
>  --
>  View this message in context: http://www.nabble.com/threadpool-overflow-tp15975678s12049p15975678.html
>  Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/

Re: threadpool overflow

Posted by jbi joe <jo...@daggerpoint.net>.
I have checked all of the messaging and I have NO sendSync
messages and all providers are receiving a Done Status
message from the ODE engine after successful transaction.
Question: Do the providers need to reply back to a DONE status
message?  I never see any pool reclaimed.  It just grows
and grows.  How can I figure out whats wrong?
TIA



jbi joe wrote:
> 
> Using the JConsole to figure out why I am getting an 
> "Out of Memory Error" - Unable to create thread
> After about 3000 async calls to services my servicemix stops
> processing.  I can see the threadpool grow and grow and grow
> in the JConsole thread display.   I have several service assemblies
> that are connected to lw-container that seem to work fine without
> a heavy load.    I am using ODE BPEL to do both syncronous and
> asyncronous ME.  Im using version SMX 3.2 and ODE 1.1.1 engine.
> Under very little load things work OK.  HOWEVER, I never see threads
> returned to the threadpool.  My JConsole always shows a constant
> rise till EXHAUSTION.  Any Help greatly appreciated...
> SHould I be doing some sort of close from the BPEL?  BPEL is always
> starting the transactions.    The lw-container assemblies are always
> replying
> to the "in" message by replying to the "out" portion of the inout ME.  
> The
> ODE/BPEL always provides a DONE status upon transaction comletion.
> Seems the magic number of threads I can do is 3000, albeit I have SMX set
> to
> MAX of 1000.  In any case when 3000 is reached I begine getting the
> "Out of Memory error - Unable to create thread.
> Again any help greatly appreciated..
> TIA
> 

-- 
View this message in context: http://www.nabble.com/threadpool-overflow-tp15975678s12049p16025535.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.