activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Guillaume Nodet" <gno...@gmail.com>
Subject Re: Connection pooling
Date Sun, 03 Dec 2006 19:12:17 GMT
Note that jmx was enabled, so that i have seen mbeans
being created / destroyed for each message sent using jca outbound
(one of them was the advisory consumer iirc).  That may be related to cpu
usage.

On 12/3/06, Rob Davies <rajdavies@gmail.com> wrote:
> Thanks Guillaume!
>
> I'll look at why it's so cpu intensive to create a connection +
> session + producer on the broker side
>
> cheers,
>
> Rob
> On 3 Dec 2006, at 18:59, Guillaume Nodet wrote:
>
> > Over the past days, I worked on improving the connection pooling in
> > ActiveMQ, mainly for outbound.  I found that:
> >  * the o.a.a.pool package has a limited throughput when using
> > persistence
> >     messaging, because all threads reuse a single connection, but
> > the broker
> >     will handle the messages sequentially, so the throughput of
> > using a single
> >     transaction in multiple threads is the same as using a single
> > thread.
> > * the activemq resource adapter used for outbound is really slow
> > (using
> >    jencks), because the connection is completely reset after each
> > use.  The
> >     connection infos need to be sent each time + creation of an
> > advisory consumer
> >     on the connection, + createion of the session + creation of a
> > producer.  These
> >    operations are very cpu intensive on the broker side (no real idea
> > why).  I think
> >    this should be improved by pooling sessions / producers.
> >
> > For my current needs, I have enhanced the o.a.a.pool package to
> > support
> > enlisting the current session in an active xa transaction, and by
> > allowing
> > several connections to be used to raise the global throughput.
> > I have also added in jencks a derived pooled connection factory which
> > is compatible with jencks jca inbound support (the main problem is
> > that
> > the XAResource#isSameRM need to work and recognize that the inbound
> > connection and outbound connection use the same RM).
> >
> > My last thought is that i wonder if the org.apache.activemq.pool
> > package
> > should be in its own module because it has its own set of dependencies
> > in addition to the standard jms client (commons-pool mainly) which can
> > lead to problems with classloaders.
> >
> > --
> > Cheers,
> > Guillaume Nodet
>
>


-- 
Cheers,
Guillaume Nodet

Mime
View raw message