You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Alex Boisvert <bo...@intalio.com> on 2009/03/01 18:29:14 UTC

Re: ODE thread deadlock avoidance

How many threads do you need?  How many threads do you have configured?

alex

On Sat, Feb 28, 2009 at 8:36 AM, Ciaran <ci...@gmail.com> wrote:

> On Sat, Feb 28, 2009 at 3:37 PM, Alex Boisvert <bo...@intalio.com>
> wrote:
>
> > It's a good question.  I'm guessing you're talking about persistent
> > processes and I'm also guessing that you run into some kind of deadlock
> > issue at the database level.   We would need to diagnose the situation to
> > determine which tables/rows are being locked and try to change the code
> > such
> > that we reduce contention on these tables/rows to avoid the deadlock (if
> > possible).   It's not an easy task but it's surely worthwhile.
>
> I don't think this is the case we're running in-memory, and I'm not seeing
> deadlock errors in the db, it *appears* as though there aren't enough
> threads available to execute the nested process calls?
>  -cj
>
>
> >
> >
> > alex
> >
> >
> > On Sat, Feb 28, 2009 at 12:33 AM, Ciaran <ci...@gmail.com> wrote:
> >
> > > We currently have two BPEL processes A + B, sometimes a step in A will
> > > (in-directly, but in-process) call B via an intermediary web service
> > > invocation.  Currently, it seems as though i can only call A
> successfully
> > > from two con-current loading/testing threads, as soon as I ramp it up
> to
> > 3
> > > threads we start to get connection timeouts (very reliably, at 2
> threads
> > we
> > > see 0 problems, after 2 threads everything other than the first 2
> things
> > we
> > > push through fail :( ) .  Now I suspect this is because  I've used up
> all
> > > my
> > > available threads-of-execution and because B can't be *received* by the
> > > engine, A times-out.  I've read around the docs and mailing list and
> seen
> > > the ode.axis2.properties comments, but these don't appear to help me,
> > apart
> > > from the fact that I should probably being using correlated invokes,
> > could
> > > anyone point me in the right direction to increase the size of the
> > availble
> > > pool of threads (the THREAD_POOL_SIZE appears to be hardcode to 8, but
> I
> > > think thats JBI not axis ? )
> > >
> > > Many thanks, sorry if this question is entirely inane!
> > > - Cj.
> > >
> >
>

Re: ODE thread deadlock avoidance

Posted by Ciaran <ci...@gmail.com>.
Just read :
https://issues.apache.org/jira/browse/ODE-533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

A thought occurs to me, since *all* my connections are back to the same
host, could I just be running into the default 2 max-connections per host on
a HTTP1.1 HTTPClient connection?  (will investigate in a mo, but wanted to
capture my thoughts somewhere)
- CJ.

On Sun, Mar 1, 2009 at 8:59 PM, Ciaran <ci...@gmail.com> wrote:

>
>
> On Sun, Mar 1, 2009 at 8:53 PM, Tammo van Lessen <tv...@gmail.com>wrote:
>
>> Hi,
>>
>>
>> Ciaran wrote:
>> > On Sun, Mar 1, 2009 at 7:17 PM, Alex Boisvert <bo...@intalio.com>
>> wrote:
>> >
>> >> In ode-axis2.properties,
>> >>
>> >> ode-axis2.threads.pool.size=80
>> >>
>> > Sorry for the stupidity, away-from-relevant-keyboard;)  whereabouts is
>> > ode-axis2.properties ? (I found ode-axis2-default.properties the other
>> day,
>> > but changes in there appeared to do nothing :( )
>>
>> ode-axis2.properties is located in WEB-INF/conf. If there is an
>> ode-axis2-default.properties, just remove the "-default" from its
>> filename.
>
> Thanks guys, I'll change and re-test tomorrow morning :)
> - cj
>
>
>

Re: ODE thread deadlock avoidance

Posted by Ciaran <ci...@gmail.com>.
On Sun, Mar 1, 2009 at 8:53 PM, Tammo van Lessen <tv...@gmail.com>wrote:

> Hi,
>
>
> Ciaran wrote:
> > On Sun, Mar 1, 2009 at 7:17 PM, Alex Boisvert <bo...@intalio.com>
> wrote:
> >
> >> In ode-axis2.properties,
> >>
> >> ode-axis2.threads.pool.size=80
> >>
> > Sorry for the stupidity, away-from-relevant-keyboard;)  whereabouts is
> > ode-axis2.properties ? (I found ode-axis2-default.properties the other
> day,
> > but changes in there appeared to do nothing :( )
>
> ode-axis2.properties is located in WEB-INF/conf. If there is an
> ode-axis2-default.properties, just remove the "-default" from its filename.

Thanks guys, I'll change and re-test tomorrow morning :)
- cj

Re: ODE thread deadlock avoidance

Posted by Tammo van Lessen <tv...@gmail.com>.
Hi,


Ciaran wrote:
> On Sun, Mar 1, 2009 at 7:17 PM, Alex Boisvert <bo...@intalio.com> wrote:
> 
>> In ode-axis2.properties,
>>
>> ode-axis2.threads.pool.size=80
>>
> Sorry for the stupidity, away-from-relevant-keyboard;)  whereabouts is
> ode-axis2.properties ? (I found ode-axis2-default.properties the other day,
> but changes in there appeared to do nothing :( )

ode-axis2.properties is located in WEB-INF/conf. If there is an
ode-axis2-default.properties, just remove the "-default" from its filename.

Best,
  Tammo

-- 
Tammo van Lessen - http://www.taval.de

Re: ODE thread deadlock avoidance

Posted by Ciaran <ci...@gmail.com>.
On Sun, Mar 1, 2009 at 7:17 PM, Alex Boisvert <bo...@intalio.com> wrote:

> In ode-axis2.properties,
>
> ode-axis2.threads.pool.size=80
>
Sorry for the stupidity, away-from-relevant-keyboard;)  whereabouts is
ode-axis2.properties ? (I found ode-axis2-default.properties the other day,
but changes in there appeared to do nothing :( )
- Cj.


>
> alex
>
>
> On Sun, Mar 1, 2009 at 10:16 AM, Ciaran <ci...@gmail.com> wrote:
>
> > On Sun, Mar 1, 2009 at 5:29 PM, Alex Boisvert <bo...@intalio.com>
> > wrote:
> >
> > > How many threads do you need?  How many threads do you have configured?
> >
> > I think more than I"m currently using ;) And I'm not sure how many are
> > configured, I guess thats my questions, which properties do I need to set
> > to
> > configure the available threads? (tomcat is ok as I don't have this
> problem
> > with the same BPEL on the same container but on different engines ;)  )
> > - Cj.
> >
> > >
> > >
> > > alex
> > >
> > > On Sat, Feb 28, 2009 at 8:36 AM, Ciaran <ci...@gmail.com> wrote:
> > >
> > > > On Sat, Feb 28, 2009 at 3:37 PM, Alex Boisvert <boisvert@intalio.com
> >
> > > > wrote:
> > > >
> > > > > It's a good question.  I'm guessing you're talking about persistent
> > > > > processes and I'm also guessing that you run into some kind of
> > deadlock
> > > > > issue at the database level.   We would need to diagnose the
> > situation
> > > to
> > > > > determine which tables/rows are being locked and try to change the
> > code
> > > > > such
> > > > > that we reduce contention on these tables/rows to avoid the
> deadlock
> > > (if
> > > > > possible).   It's not an easy task but it's surely worthwhile.
> > > >
> > > > I don't think this is the case we're running in-memory, and I'm not
> > > seeing
> > > > deadlock errors in the db, it *appears* as though there aren't enough
> > > > threads available to execute the nested process calls?
> > > >  -cj
> > > >
> > > >
> > > > >
> > > > >
> > > > > alex
> > > > >
> > > > >
> > > > > On Sat, Feb 28, 2009 at 12:33 AM, Ciaran <ci...@gmail.com>
> wrote:
> > > > >
> > > > > > We currently have two BPEL processes A + B, sometimes a step in A
> > > will
> > > > > > (in-directly, but in-process) call B via an intermediary web
> > service
> > > > > > invocation.  Currently, it seems as though i can only call A
> > > > successfully
> > > > > > from two con-current loading/testing threads, as soon as I ramp
> it
> > up
> > > > to
> > > > > 3
> > > > > > threads we start to get connection timeouts (very reliably, at 2
> > > > threads
> > > > > we
> > > > > > see 0 problems, after 2 threads everything other than the first 2
> > > > things
> > > > > we
> > > > > > push through fail :( ) .  Now I suspect this is because  I've
> used
> > up
> > > > all
> > > > > > my
> > > > > > available threads-of-execution and because B can't be *received*
> by
> > > the
> > > > > > engine, A times-out.  I've read around the docs and mailing list
> > and
> > > > seen
> > > > > > the ode.axis2.properties comments, but these don't appear to help
> > me,
> > > > > apart
> > > > > > from the fact that I should probably being using correlated
> > invokes,
> > > > > could
> > > > > > anyone point me in the right direction to increase the size of
> the
> > > > > availble
> > > > > > pool of threads (the THREAD_POOL_SIZE appears to be hardcode to
> 8,
> > > but
> > > > I
> > > > > > think thats JBI not axis ? )
> > > > > >
> > > > > > Many thanks, sorry if this question is entirely inane!
> > > > > > - Cj.
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: ODE thread deadlock avoidance

Posted by Alex Boisvert <bo...@intalio.com>.
In ode-axis2.properties,

ode-axis2.threads.pool.size=80

alex


On Sun, Mar 1, 2009 at 10:16 AM, Ciaran <ci...@gmail.com> wrote:

> On Sun, Mar 1, 2009 at 5:29 PM, Alex Boisvert <bo...@intalio.com>
> wrote:
>
> > How many threads do you need?  How many threads do you have configured?
>
> I think more than I"m currently using ;) And I'm not sure how many are
> configured, I guess thats my questions, which properties do I need to set
> to
> configure the available threads? (tomcat is ok as I don't have this problem
> with the same BPEL on the same container but on different engines ;)  )
> - Cj.
>
> >
> >
> > alex
> >
> > On Sat, Feb 28, 2009 at 8:36 AM, Ciaran <ci...@gmail.com> wrote:
> >
> > > On Sat, Feb 28, 2009 at 3:37 PM, Alex Boisvert <bo...@intalio.com>
> > > wrote:
> > >
> > > > It's a good question.  I'm guessing you're talking about persistent
> > > > processes and I'm also guessing that you run into some kind of
> deadlock
> > > > issue at the database level.   We would need to diagnose the
> situation
> > to
> > > > determine which tables/rows are being locked and try to change the
> code
> > > > such
> > > > that we reduce contention on these tables/rows to avoid the deadlock
> > (if
> > > > possible).   It's not an easy task but it's surely worthwhile.
> > >
> > > I don't think this is the case we're running in-memory, and I'm not
> > seeing
> > > deadlock errors in the db, it *appears* as though there aren't enough
> > > threads available to execute the nested process calls?
> > >  -cj
> > >
> > >
> > > >
> > > >
> > > > alex
> > > >
> > > >
> > > > On Sat, Feb 28, 2009 at 12:33 AM, Ciaran <ci...@gmail.com> wrote:
> > > >
> > > > > We currently have two BPEL processes A + B, sometimes a step in A
> > will
> > > > > (in-directly, but in-process) call B via an intermediary web
> service
> > > > > invocation.  Currently, it seems as though i can only call A
> > > successfully
> > > > > from two con-current loading/testing threads, as soon as I ramp it
> up
> > > to
> > > > 3
> > > > > threads we start to get connection timeouts (very reliably, at 2
> > > threads
> > > > we
> > > > > see 0 problems, after 2 threads everything other than the first 2
> > > things
> > > > we
> > > > > push through fail :( ) .  Now I suspect this is because  I've used
> up
> > > all
> > > > > my
> > > > > available threads-of-execution and because B can't be *received* by
> > the
> > > > > engine, A times-out.  I've read around the docs and mailing list
> and
> > > seen
> > > > > the ode.axis2.properties comments, but these don't appear to help
> me,
> > > > apart
> > > > > from the fact that I should probably being using correlated
> invokes,
> > > > could
> > > > > anyone point me in the right direction to increase the size of the
> > > > availble
> > > > > pool of threads (the THREAD_POOL_SIZE appears to be hardcode to 8,
> > but
> > > I
> > > > > think thats JBI not axis ? )
> > > > >
> > > > > Many thanks, sorry if this question is entirely inane!
> > > > > - Cj.
> > > > >
> > > >
> > >
> >
>

Re: ODE thread deadlock avoidance

Posted by Ciaran <ci...@gmail.com>.
On Sun, Mar 1, 2009 at 5:29 PM, Alex Boisvert <bo...@intalio.com> wrote:

> How many threads do you need?  How many threads do you have configured?

I think more than I"m currently using ;) And I'm not sure how many are
configured, I guess thats my questions, which properties do I need to set to
configure the available threads? (tomcat is ok as I don't have this problem
with the same BPEL on the same container but on different engines ;)  )
- Cj.

>
>
> alex
>
> On Sat, Feb 28, 2009 at 8:36 AM, Ciaran <ci...@gmail.com> wrote:
>
> > On Sat, Feb 28, 2009 at 3:37 PM, Alex Boisvert <bo...@intalio.com>
> > wrote:
> >
> > > It's a good question.  I'm guessing you're talking about persistent
> > > processes and I'm also guessing that you run into some kind of deadlock
> > > issue at the database level.   We would need to diagnose the situation
> to
> > > determine which tables/rows are being locked and try to change the code
> > > such
> > > that we reduce contention on these tables/rows to avoid the deadlock
> (if
> > > possible).   It's not an easy task but it's surely worthwhile.
> >
> > I don't think this is the case we're running in-memory, and I'm not
> seeing
> > deadlock errors in the db, it *appears* as though there aren't enough
> > threads available to execute the nested process calls?
> >  -cj
> >
> >
> > >
> > >
> > > alex
> > >
> > >
> > > On Sat, Feb 28, 2009 at 12:33 AM, Ciaran <ci...@gmail.com> wrote:
> > >
> > > > We currently have two BPEL processes A + B, sometimes a step in A
> will
> > > > (in-directly, but in-process) call B via an intermediary web service
> > > > invocation.  Currently, it seems as though i can only call A
> > successfully
> > > > from two con-current loading/testing threads, as soon as I ramp it up
> > to
> > > 3
> > > > threads we start to get connection timeouts (very reliably, at 2
> > threads
> > > we
> > > > see 0 problems, after 2 threads everything other than the first 2
> > things
> > > we
> > > > push through fail :( ) .  Now I suspect this is because  I've used up
> > all
> > > > my
> > > > available threads-of-execution and because B can't be *received* by
> the
> > > > engine, A times-out.  I've read around the docs and mailing list and
> > seen
> > > > the ode.axis2.properties comments, but these don't appear to help me,
> > > apart
> > > > from the fact that I should probably being using correlated invokes,
> > > could
> > > > anyone point me in the right direction to increase the size of the
> > > availble
> > > > pool of threads (the THREAD_POOL_SIZE appears to be hardcode to 8,
> but
> > I
> > > > think thats JBI not axis ? )
> > > >
> > > > Many thanks, sorry if this question is entirely inane!
> > > > - Cj.
> > > >
> > >
> >
>