第24章 スレッド管理

JBoss EAP の各メッセージングサーバーは、一般的な使用のために単一のスレッドプールを維持し、スケジュール使用のためにスケジュールスレッドプールを維持します。Java のスケジュールスレッドプールは標準のスレッドプールを使用するように設定できません。それ以外は、スケジュールされたアクティビティーとスケジュールされていないアクティビティーの両方に単一のスレッドプールを使用できます。

JBoss EAP は新しい非ブロッキング NIO を使用することに注意してください。デフォルトでは、JBoss EAP のメッセージングは、受信パケットの処理に、.getRuntime().availableProcessors() によって報告されるコア (hyper-threads) の数の 3 倍のスレッドを使用します。この値をオーバーライドするには、トランスポート設定で nio-remoting-threads パラメーターを指定してスレッド数を設定します。詳細は、「メッセージングトランスポートの設定」を参照してください。

24.1. サーバースケジュールスレッドプール

サーバースケジュールスレッドプールは、定期的に実行する必要がある、または遅れて実行する必要があるサーバーサイドの多くのアクティビティーに使用されます。内部的には、java.util.concurrent.ScheduledThreadPoolExecutor インスタンスにマッピングします。

このプールによって使用されるスレッドの最大数は、scheduled-thread-pool-max-size パラメーターを使用して設定します。デフォルト値は 5 スレッドです。通常、このプールには少ない数のスレッドで十分です。デフォルトの JBoss EAP メッセージングサーバーのこの値を変更するには、以下の管理 CLI コマンドを使用します。

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