24.6. クライアントスレッド管理


JBoss EAP には、クライアント接続の作成に使用されるクライアントスレッドプールが含まれています。このプールは、本章で前述した静的プールとは別のもので、クライアントのように動作するときに JBoss EAP によって使用されます。たとえば、クライアントスレッドプールクライアントは、同じクラスター内の他のノードとのクラスター接続として作成されます。または Artemis リソースアダプターが JBoss EAP のリモートインスタンス内で統合されたリモート Apache ActiveMQ Artemis メッセージングサーバーに接続するときに作成されます。スケジュールクライアントスレッドにもプールがあります。

注記

JBoss EAP 7.1 のリリースでは、クライアントスレッドが 60 秒間何もアクティビティーがなかった後にタイムアウトするようになりました。

管理 CLI を使用したクライアントスレッドプールサイズの設定

管理 CLI を使用して、クライアントスレッドプールとクライアントスケジュールスレッドプールの両方のサイズを設定します。管理 CLI を使用して設定したプールサイズは、システムプロパティーを使用して設定するサイジングよりも優先されます。

以下のコマンドは、クライアントスレッドプールを設定します。

/subsystem=messaging-activemq:write-attribute(name=global-client-thread-pool-max-size,value=POOL_SIZE)
Copy to Clipboard

この属性に定義されるデフォルト値はありません。属性が定義されていない場合、プールの最大サイズは、CPU コアプロセッサー数の 8 倍になるように決定されます。

現在の設定を確認するには、以下のコマンドを使用します。

/subsystem=messaging-activemq:read-attribute(name=global-client-thread-pool-max-size)
Copy to Clipboard

クライアントスケジュールスレッドプールのサイズは、以下のコマンドを使用して設定します。

/subsystem=messaging-activemq:write-attribute(name=global-client-scheduled-thread-pool-max-size,value=POOL_SIZE)
Copy to Clipboard

以下は、クライアントスケジュールスレッドプールの現在のプールのサイズを表示します。デフォルト値は 5 です。

/subsystem=messaging-activemq:read-attribute(name=global-client-scheduled-thread-pool-max-size)
Copy to Clipboard

システムプロパティーを使用したクライアントスレッドプールサイズの設定

以下のシステムプロパティーは、クライアントのグローバルおよびグローバルスケジュールスレッドプールのサイズをそれぞれ設定するために使用できます。

  • activemq.artemis.client.global.thread.pool.max.size
  • activemq.artemis.client.global.scheduled.thread.pool.core.size

以下の例のように、システムプロパティーは XML 設定で参照できます。

注記

管理 CLI を使用して設定したプールサイズは、システムプロパティーで設定したサイズよりも優先されます。

<subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">
  <global-client thread-pool-max-size="${activemq.artemis.client.global.thread.pool.max.size}"
    scheduled-thread-pool-max-size="${activemq.artemis.client.global.scheduled.thread.pool.core.size}" />
  <server ...>
  </server>
  ...
</subsystem>
Copy to Clipboard

独自のスレッドプールを使用するようにクライアントを設定する

クライアントは、各 ClientSessionFactory インスタンスが JBoss EAP によって提供されるプールを使用せず、独自のクライアントスレッドプールを使用するように設定できます。この ClientSessionFactory から作成されるセッションはどれも、新規作成されるプールを使用します。

ClientSessionFactory インスタンスが独自のプールを使用するように設定するには、ファクトリーの作成後すぐに適切なセッターメソッドを呼び出します。例を以下に示します。

ServerLocator locator = ActiveMQClient.createServerLocatorWithoutHA(transportConfiguration);
locator.setUseGlobalPools(true);
locator.setThreadPoolMaxSize(-1);
locator.setScheduledThreadPoolMaxSize(10);
ClientSessionFactory myFactory = locator.createSessionFactory();
Copy to Clipboard

JMS API を使用している場合は、ClientSessionFactory に同じパラメーターを設定できます。例を以下に示します。

ActiveMQConnectionFactory myConnectionFactory = ActiveMQJMSClient.createConnectionFactory(url, "ConnectionFactoryName");
myConnectionFactory.setUseGlobalPools(false);
myConnectionFactory.setScheduledThreadPoolMaxSize(10);
myConnectionFactory.setThreadPoolMaxSize(-1);
Copy to Clipboard

JNDI を使用して ActiveMQConnectionFactory インスタンスをインスタンス化する場合は、JBoss EAP のスタンドアロンインスタンスの以下の例にあるように管理 CLI を使用してこれらのパラメーターを設定することもできます。

/subsystem=messaging-activemq/server=default/connection-factory=myConnectionFactory:write-attribute(name=use-global-pools,value=false)

/subsystem=messaging-activemq/server=default/connection-factory=myConnectionFactory:write-attribute(name=scheduled-thread-pool-max-size,value=10)

/subsystem=messaging-activemq/server=default/connection-factory=myConnectionFactory:write-attribute(name=thread-pool-max-size,value=1)
Copy to Clipboard

上記の各コマンドを実行すると、インスタンスのリロードが必要であることが管理 CLI により通知されることに注意してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat