40.2. Client-Side Thread Management
On the client side, HornetQ maintains a single static scheduled thread pool and a single static general thread pool for use by all clients using the same classloader in that JVM instance.
The static scheduled thread pool has a maximum size of
5
threads, and the general purpose thread pool has an unbounded maximum size.
If required HornetQ can also be configured so that each
ClientSessionFactory
instance does not use these static pools but instead maintains its own scheduled and general purpose pool. Any sessions created from that ClientSessionFactory
will use those pools instead.
To configure a
ClientSessionFactory
instance to use its own pools, use the appropriate setter methods immediately after creation. For example:
ClientSessionFactory myFactory = HornetQClient.createClientSessionFactory(...); myFactory.setUseGlobalPools(false); myFactory.setScheduledThreadPoolMaxSize(10); myFactory.setThreadPoolMaxSize(-1);
When using the JMS API, set the same parameters on the ClientSessionFactory and use it to create the
ConnectionFactory
instance. For example:
ConnectionFactory myConnectionFactory = HornetQJMSClient.createConnectionFactory(myFactory);
If you are using JNDI to instantiate
HornetQConnectionFactory
instances, you can also set these parameters in the JBOSS_DIST/jboss-as/server/<PROFILE>/deploy/hornetq/hornetq-jms.xml
file where you describe your connection factory. For example:
<connection-factory name="NettyConnectionFactory"> <connectors> <connector-ref connector-name="netty"/> </connectors> <entries> <entry name="/ConnectionFactory"/> <entry name="/XAConnectionFactory"/> </entries> <use-global-pools>false</use-global-pools> <scheduled-thread-pool-max-size>10</scheduled-thread-pool-max-size> <thread-pool-max-size>-1</thread-pool-max-size> </connection-factory>