1

良い質問かどうかはわかりません。EJB 3.1 では、メソッドに非同期タグを付けることができます。非同期呼び出しがサーブレット スレッドよりも長く存続するのか、それともプロセスが終了するまでサーブレット スレッドがバックグラウンドで待機するのか疑問に思います。

4

1 に答える 1

2

いいえ、スレッドはバックグラウンドで待機しません。これは、長時間持続するタスクを呼び出すことで簡単にテストでき、セッションがタイムアウトした後もまだ生きていることを監視できます (非常に短いタイムアウトを調整するだけです)。

接続の問題は、クライアントが Future.get() を呼び出さない場合にリソースが不必要に予約されることです。それらがアプリケーションのランタイム全体で予約されるのを避けるために、仕様ではタイムアウトが許可されています。

EJB コンテナ プロバイダは、完了した非同期呼び出しの結果値をコンテナが保持する最大時間を管理するタイムアウト値を定義することが許可されています。このようなタイムアウトの構成は、この仕様の範囲を超えています。

于 2012-05-07T19:17:17.427 に答える