ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド

10.5.1 アプリケーションの最大処理時間の時間監視機能

この機能は、IJServerを利用して、アプリケーションを動作させる場合に使用できます。
この機能を使用することにより、EJBアプリケーションの無限ループを検出できます。

以下にサーバ処理中にアプリケーションの最大処理時間を超過した場合の処理について説明します。
アプリケーションが存在するプロセスを強制停止するように設定している場合と、設定していない場合で処理内容が異なります。

アプリケーションが存在するプロセスを強制停止する設定の場合

プロセスが強制停止されます。
トランザクション中の場合は、プロセス終了の結果、トランザクションがロールバックされます。
最大処理時間を超過した場合、サーバのシステムログに以下のメッセージが出力されます。

extp: エラー: EXTP4365: アプリケーションの処理時間が監視時間を超過しました

クライアントには、以下の例外が通知されます。

java.rmi.RemoteException:CORBA UNKNOWN
アプリケーションが存在するプロセスを強制停止しない設定の場合

プロセスは強制停止されません。
最大処理時間を超過した場合、サーバのシステムログに以下のメッセージが出力されます。

extp: 警告: EXTP4366: アプリケーションの処理時間が監視時間を超過しました

クライアントには、通知されません。


最大処理時間を超過した後、クライアントからサーバに処理の要求が行われた場合の処理について説明します。
アプリケーションが存在するプロセスを強制停止するように設定している場合と、設定していない場合で処理内容が異なります。

アプリケーションが存在するプロセスを強制停止する設定の場合

処理の実行はできません。サーバのシステムログには、出力されません。
クライアントには、以下の例外が通知されます。

java.rmi.RemoteException: CORBA NO_IMPLEMENT
アプリケーションが存在するプロセスを強制停止しない設定の場合

通常通り、処理は実行されます。

注意

Interstage管理コンソールまたはisj2eeadminコマンドで“アプリケーション最大処理時間超過時の制御”に「警告メッセージを出力する」を選択した場合、最初のタイムアウト発生時にメッセージを出力してから10分間は同一プロセスからのタイムアウト時間超過メッセージの出力は抑止されます。
また、「プロセスを強制停止する」を選択した場合、プロセス強制停止処理はスレッドダンプの出力前にプロセスが強制停止されることを防止するために、2回目のスレッドダンプ出力処理の10秒後に実施します。
そのため、タイムアウト時間超過メッセージが出力されてから10秒後に2回目のスレッドダンプが出力され、さらに10秒後にプロセスが強制停止されるため少なくとも20秒間プロセスは停止しません。そのことにより、メッセージが出力された場合でもプロセス停止までの間に正常にアプリケーションが復帰し、その後にプロセスが強制停止される場合があります。