we use
https://github.com/apache/tomee/blob/master/container/openejb-core/src/main/java/org/apache/openejb/util/ExecutorBuilder.java
to build the thread pool so configuring <ra
id>.QueueType=SYNCHRONOUS|LINKED and <ra id>.MaximumPoolSize you can have a
finer control (Note: there are more config but these ones are the one you
target)

If you use threadPoolSize < 0 we'll use a cached thread pool size so it
will auto adjust but potentially grow a lot.


Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
<http://www.tomitribe.com>

2015-09-28 7:43 GMT-07:00 Steve Goldsmith <[email protected]>:

> OK, so could I have the following configuration (say NIO):
>
> Default\ JMS\ Resource\ Adapter.ThreadPoolSize=100
> Default\ MDB\ Container.InstanceLimit=1000
>
> What happens when I max out the thread pool?
>
> On Mon, Sep 28, 2015 at 10:40 AM, Romain Manni-Bucau <
> [email protected]>
> wrote:
>
> > Le 28 sept. 2015 07:36, "Steve Goldsmith" <[email protected]> a écrit :
> > >
> > > How would you configure NIO for MDB? I do plan on stress testing, but I
> > > want to make sure I understand the configuration. Is there a 1 to 1
> > > relationship with Default\ JMS\ Resource\ Adapter.ThreadPoolSize and
> > > Default\ MDB\ Container.InstanceLimit?
> > >
> >
> > Nio is on the broker url if embedded, there are samples on the list
> > A 1-1 relationship is not mandatory, but in bio connection it makes
> sense -
> > in nio more rarely.
> >
> > > On Mon, Sep 28, 2015 at 10:29 AM, Romain Manni-Bucau <
> > [email protected]>
> > > wrote:
> > >
> > > > Le 28 sept. 2015 07:24, "Steve Goldsmith" <[email protected]> a
> écrit :
> > > > >
> > > > > OK, yea, it's not real clear where configuration preference go
> (i.e.
> > > > > system.properties or tomee.xml). My goal is to have 100 messages
> > > > processing
> > > > > simultaneously for each MDB. I could have 5 or 10 distinct beans
> that
> > > > need
> > > > > to handle up to 100 messages each simultaneously. In case of 10
> beans
> > > > with
> > > > > 100 simultaneously messages (1000 total) would I have to use:
> > > > >
> > > > > Default\ JMS\ Resource\ Adapter.ThreadPoolSize=1000
> > > > > Default\ MDB\ Container.InstanceLimit=1000
> > > > >
> > > > > Is there any implications to this? I have a scenario where I could
> > have a
> > > > > onMessage last up to 30 seconds and we have tens of thousands of
> > users. I
> > > > > need it to scale to a lot of MDBs. Are there OS tuning
> considerations
> > > > based
> > > > > on the number of active threads?
> > > > >
> > > >
> > > > Standard OS config are important like ulimit. 1000 threads sounds a
> > lot.
> > > > Also using a delegation pattern nio transport and mdb calling a
> > singleton
> > > > or app scoped cdi bean you should be able to scale more easily.
> > > >
> > > > Only way to ensure it is to bench it on your actual machine - even if
> > > > theory is good better to check it actually works cause  bottleneck
> can
> > be
> > > > totally different.
> > > >
> > > > > On Sun, Sep 27, 2015 at 9:53 PM, Leonardo K. Shikida <
> > [email protected]>
> > > > > wrote:
> > > > >
> > > > > > sounds correct for me
> > > > > >
> > > > > > if you want to run tests and see things clearer, you probably can
> > try
> > > > this
> > > > > > in your MDB instead
> > > > > >
> > > > > >         @ActivationConfigProperty(propertyName =
> > > > "maxMessagesPerSessions",
> > > > > > propertyValue = "1")
> > > > > >
> > > > > > so each MDB will only fetch 1 message at a time
> > > > > >
> > > > > > I am not sure if this parameter is related, but it's another one
> > you
> > > > can
> > > > > > try, if your configuration is not working as expected.
> > > > > >
> > > > > >     <Resource id="MyJmsConnectionFactory"
> > > > > > type="javax.jms.ConnectionFactory">
> > > > > >     ResourceAdapter = Default\ JMS\ Resource\ Adapter
> > > > > >     PoolMaxSize = 100
> > > > > >     </Resource>
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > []
> > > > > >
> > > > > > Leo
> > > > > >
> > > > > > On Tue, Sep 22, 2015 at 5:15 PM, sgjava <[email protected]>
> wrote:
> > > > > >
> > > > > > > If I have multiple MDBs that I want to scale to 100 beans
> > > > simultaneously,
> > > > > > > how
> > > > > > > would I configure TomEE? Currently I'm using:
> > > > > > >
> > > > > > > system.properties:
> > > > > > >
> > > > > > > Default\ JMS\ Resource\ Adapter.ThreadPoolSize=100
> > > > > > > Default\ MDB\ Container.InstanceLimit=100
> > > > > > >
> > > > > > > bean:
> > > > > > >
> > > > > > > @MessageDriven(activationConfig = {
> > > > > > >     @ActivationConfigProperty(propertyName = "maxSessions",
> > > > propertyValue
> > > > > > >             = "100"),
> > > > > > >     @ActivationConfigProperty(propertyName =
> > > > "maxMessagesPerSessions",
> > > > > > >             propertyValue = "100")})
> > > > > > >
> > > > > > > But this would only cover 100 simultaneous beans? For instance,
> > say
> > > > I
> > > > > > have
> > > > > > > 10 beans that could have 100 messages active at the same time
> or
> > 1000
> > > > > > > beans.
> > > > > > > How would the configuration look?
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > View this message in context:
> > > > > > >
> > > > > >
> > > >
> > > >
> >
> >
> http://tomee-openejb.979440.n4.nabble.com/Scaling-MDBs-beyond-default-10-limit-tp4676322.html
> > > > > > > Sent from the TomEE Users mailing list archive at Nabble.com.
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Steven P. Goldsmith
> > > >
> > >
> > >
> > >
> > > --
> > > Steven P. Goldsmith
> >
>
>
>
> --
> Steven P. Goldsmith
>

Reply via email to