I am relatively new to ActiveMQ but have read a fair amount about it now. I still have questions however regarding how to efficiently use various resources:
1 - If one's application expects relatively light communication between it and the message broker, is it fine to use a single Connection for the entire application? At what point does communication load become heavy enough for multiple Connections to be warranted? Is there a rule of thumb on this or is it entirely a trial-and-error situation?
2 - Is it recommended to create a different Session object for each different MessageProducer and for each different MessageConsumer that the application uses? If not, what is the recommended pattern here?
3 - Is there a Thread that gets created each time a Session is created? If so, what is it used for exactly?
4 - How does one create a PooledSession? I assume that the advantage of using a PooledSession is that it avoids sending a notice to the broker when each time new Session is created, and avoids creating a new Thread over an over. Is this correct?
5 - How does one create a PooledProducer? I assume that the advantage of using a PooledProducer is that it avoids sending a notice to the broker each time a new MessageProducer is created. Is this correct?