13.9 ManagedScheduledExecutorServiceの動作
ManagedScheduledExecutorServiceのチューニングプロパティ設定値は,J2EEサーバ起動時にメッセージログに出力されるメッセージKDJE60813-Iで確認できます。
JNDI名の重複や不正値の使用などによって,ManagedScheduledExecutorServiceのJNDI名前空間への登録に失敗した場合は,J2EEサーバ起動時にメッセージログにKDJE60814-Eが出力され,スタックトレースが例外ログに出力されますが,J2EEサーバの起動処理は続行します。
ManagedScheduledExecutorServiceのスレッドプールは,該当するスレッドプールを使用するタスクの初回実行時に初期化され,corePoolSizeに指定した数のスレッドが生成されます。生成されるスレッドは,スレッド名が「<JNDI名>-managedThreadFactory」から始まる名称で,生成された順に通番が付きます。
ManagedScheduledExecutorServiceのスレッドプールはJ2EEサーバ停止時に破棄されます。破棄が完了するとメッセージログにKDJE60828-Iが出力されます。破棄処理時に何らかの例外が発生した場合は,メッセージログにKDJE60829-E,例外ログにスタックトレースが出力され,J2EEサーバ停止処理を続行します。
J2EEサーバ停止処理中に実行中のタスクが残っていた場合は,awaitTerminationSecondsの値に応じて,次の動作をします。
-
awaitTerminationが0の場合
メッセージログにKDJE60827-Wが出力され,実行中のタスクは強制停止されます。
-
awaitTerminationが1以上の場合
メッセージログにKDJE60825-Iが出力され,awaitTermination設定時間分待機します。awaitTermination設定時間経過後も実行中のタスクが残った場合は,メッセージログにKDJE60826-Wが出力され,残っていたタスクは強制停止さます。