activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mattcodes <m...@mattfreeman.co.uk>
Subject Re: Relationship between Producer, Session and Connection.
Date Thu, 08 Apr 2010 04:15:16 GMT

When you say overhead are you talking about ongoing on startup, I was
thinking of initializing the pool on startup, so bring up minsize of pools
say 30 producer(1:1)session(1:1)connection, so when requested its all ready
to go, use it, and release it back to the pool for the next incoming web
request that has to send a message to the backend queue.

If I go the route of having 1 connection, how many session would you have
per connection? I guess start with the connection as singelton, then a pool
of sessions? Eventually scale it to connection per 20 sessions? Or something
like that?

There could be quite a few concurrent users that will push the demand on the
activemq parts up





bsnyder wrote:
> 
> On Wed, Apr 7, 2010 at 5:12 AM, mattcodes <matt@mattfreeman.co.uk> wrote:
>>
>> In a (ASP.Net/c#) web-app I want to pump messages to an ActiveMQ queue
>> (nothing complicated - no native transactions etc..). Reading various
>> FAQs
>> etc.. I figure I should create a pool of say 50 message producers, each
>> with
>> their own session and own connection for the best performance. i.e. a 1
>> to 1
>> relation between producer --> session and session --> connection. Is this
>> the optimal setup? When would this be problematic?  Obviously Id have to
>> implement the pooling myself since there's no ActiveMQ pool lib for .Net?
>>
>> Alternatively I thought about pooling Session (with 1to1 with connection)
>> and then creating the producer on each request? The overhead of this is
>> about 9ms I tested, which isnt that far off pulling from a pool,
> 
> The problem with what you are proposing is that it won't scale very
> well. Creating connections, sessions and producers in a 1:1 ratio is
> inappropriate because the overhead of both is rather high. It's
> actually better to use one connection to create many sessions and only
> increasing the number of connections if it is deemed necessary. This
> is the model used by most JMS pooling connection factories and most
> messaging middleware works very well with this model.
> 
> Here is an example of what I recommend to folks for sending messages:
> 
> http://bsnyderblog.blogspot.com/2010/02/using-spring-jmstemplate-to-send-jms.html
> 
> This example uses the Spring Framework to send JMS messages. Let me
> know if you have any questions.
> 
> Bruce
> -- 
> perl -e 'print
> unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
> );'
> 
> ActiveMQ in Action: http://bit.ly/2je6cQ
> Blog: http://bruceblog.org/
> Twitter: http://twitter.com/brucesnyder
> 
> 

-- 
View this message in context: http://old.nabble.com/Relationship-between-Producer%2C-Session-and-Connection.-tp28163471p28173978.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message