Hitachi

 Hitachi Application Server V10 定義リファレンスWindows®用)


7.12.2 -XX:HitachiThreadLimit

スレッド数の上限値を指定します。

説明

スレッド数の上限値を指定します。スレッド数の上限値が指定値を超えた場合に、OutOfMemoryError例外がスローされます。ただし、JavaVMが起動する前に上限値を超えた場合、例外はスローされません。また、スレッド数には、アプリケーションがJNIなどを使用してJavaVMの管理外の範囲で作成したスレッド数は含みません。0を指定した場合、上限値は設定されません。

なお、-XX:+HitachiOutOfMemoryAbortオプションと同時に指定した場合、このオプションの機能によってOutOfMemoryError例外がスローされた場合、JavaVMの強制終了は実行されません。

また、-XX:+HitachiOutOfMemoryStackTraceオプションと同時に指定した場合、例外メッセージがJavaVMログファイルに出力されます。

出力形式
Could not create "name" thread. Threadlimit Exceeded. num threads exist.

このメッセージは、java.lang.Throwable.getMessage()で取得できます。また、メッセージ全体が半角128文字以上になった場合は、メッセージの末尾が省略されます。

出力項目

出力内容

name

作成に失敗したスレッド名。

num

現時点でのスレッド数。

-XX:+HitachiOutOfMemoryStackTraceオプションが指定されている場合、JavaVMログファイルに例外情報とスタックトレースを出力できます。例外発生要因種別は、"Thread Limit"となります。例外発生要因種別を次に示します。

表7‒10 例外発生要因種別一覧

項番

要因メッセージ

説明

1

C Heap

Cヒープ確保時の例外

2

Java Heap

Javaヒープ確保時の例外

3

Meta Space

Metaspace確保時の例外

4

Compressed Class Space

Compressed Class Space確保時の例外

5

Unknown

上記例外を特定できない場合

6

Thread Limit

スレッド数の上限値設定機能(-XX:HitachiThreadLimitオプション)を指定した場合に、作成したスレッド数が指定した上限値を超えたときの例外

書式

-XX:HitachiThreadLimit=整数値

指定できる値

整数値

型:Integer

スレッド数の上限値を0〜2147483647の範囲で整数値(単位:スレッド数)を指定します。範囲外の値が指定された場合は0が設定されます。負の値を指定した場合はエラーとなります。

デフォルト値

定義項目の省略

-XX:HitachiThreadLimit=0

出力例

Could not create "Thread-1" thread. Threadlimit Exceeded. 9 threads exist.

この例は、mainスレッドによってjava.lang.Thread.startが呼び出され、この機能によって例外をスローした場合に、java.lang.Throwable.getMessage()でメッセージを取り出したメッセージの例です。

注意事項

上限値に小さな値を設定すると、起動前に例外をスローします。Java EEサーバが使用するスレッド数より小さな値を設定しないでください。