Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

18.10.2. クライアント側のスレッド管理

クライアント側で、HornetQ は単一の静的スケジュールスレッドプールと、その JVM インスタンスの同じクラスローダーを使用してすべてのクライアントによって使用される静的汎用スレッドプールを 1 つ維持します。
静的スケジュールスレッドプールの最大サイズは 5 つのスレッドで、汎用スレッドプールの最大サイズはバインドされません。
ClientSessionFactory インスタンスがこれらの静的プールを使用せず、代わりに独自のスケジュールおよび汎用プールを維持するように HornetQ を設定することもできます。その ClientSessionFactory から作成されたセッションは、代わりにそれらのプールを使用します。
ClientSessionFactory インスタンスが独自のプールを使用するように設定するには、作成直後に適切なセッターメソッドを使用します。以下に例を示します。
ServerLocator locator = HornetQClient.createServerLocatorWithoutHA(...)
ClientSessionFactory myFactory = locator.createClientSessionFactory();
myFactory.setUseGlobalPools(false);
myFactory.setScheduledThreadPoolMaxSize(10);
myFactory.setThreadPoolMaxSize(-1);
JMS API を使用している場合は、ClientSessionFactory に同じパラメーターを設定し、これを使用して ConnectionFactory インスタンスを作成できます。以下に例を示します。
ConnectionFactory myConnectionFactory = HornetQJMSClient.createConnectionFactory(myFactory);
JNDI を使用して HornetQConnectionFactory インスタンスをインスタンス化する場合は、接続ファクトリーを記述する standalone.xml または domain.xml ファイルにこれらのパラメーターを設定することもできます。以下に例を示します。
<connection-factory name="ConnectionFactory">
   <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>