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>