You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by sgjava <sg...@gmail.com> on 2015/09/22 22:15:27 UTC

Scaling MDBs beyond default 10 limit

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.

Re: Scaling MDBs beyond default 10 limit

Posted by Romain Manni-Bucau <rm...@gmail.com>.
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 <sg...@gmail.com>:

> 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 <
> rmannibucau@gmail.com>
> wrote:
>
> > Le 28 sept. 2015 07:36, "Steve Goldsmith" <sg...@gmail.com> 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 <
> > rmannibucau@gmail.com>
> > > wrote:
> > >
> > > > Le 28 sept. 2015 07:24, "Steve Goldsmith" <sg...@gmail.com> 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 <
> > shikida@gmail.com>
> > > > > 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 <sg...@gmail.com>
> 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
>

Re: Scaling MDBs beyond default 10 limit

Posted by Steve Goldsmith <sg...@gmail.com>.
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 <rm...@gmail.com>
wrote:

> Le 28 sept. 2015 07:36, "Steve Goldsmith" <sg...@gmail.com> 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 <
> rmannibucau@gmail.com>
> > wrote:
> >
> > > Le 28 sept. 2015 07:24, "Steve Goldsmith" <sg...@gmail.com> 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 <
> shikida@gmail.com>
> > > > 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 <sg...@gmail.com> 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

Re: Scaling MDBs beyond default 10 limit

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Le 28 sept. 2015 07:36, "Steve Goldsmith" <sg...@gmail.com> 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 <
rmannibucau@gmail.com>
> wrote:
>
> > Le 28 sept. 2015 07:24, "Steve Goldsmith" <sg...@gmail.com> 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 <
shikida@gmail.com>
> > > 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 <sg...@gmail.com> 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

Re: Scaling MDBs beyond default 10 limit

Posted by Steve Goldsmith <sg...@gmail.com>.
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?

On Mon, Sep 28, 2015 at 10:29 AM, Romain Manni-Bucau <rm...@gmail.com>
wrote:

> Le 28 sept. 2015 07:24, "Steve Goldsmith" <sg...@gmail.com> 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 <sh...@gmail.com>
> > 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 <sg...@gmail.com> 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

Re: Scaling MDBs beyond default 10 limit

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Le 28 sept. 2015 07:24, "Steve Goldsmith" <sg...@gmail.com> 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 <sh...@gmail.com>
> 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 <sg...@gmail.com> 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

Re: Scaling MDBs beyond default 10 limit

Posted by Steve Goldsmith <sg...@gmail.com>.
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?

On Sun, Sep 27, 2015 at 9:53 PM, Leonardo K. Shikida <sh...@gmail.com>
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 <sg...@gmail.com> 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

Re: Scaling MDBs beyond default 10 limit

Posted by "Leonardo K. Shikida" <sh...@gmail.com>.
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 <sg...@gmail.com> 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.
>