0

この質問は、スレッドを使用せずにEJB3でタイムアウトを処理することにいくらか関連しています。

背景:実行中にロックする可能性のある操作の例があります。そのような事態に対処し、発生した場合は操作を強制終了できる必要があります。ソリューションはアプリケーションサーバーに依存しない必要があるため、timout値を使用するコンテナー管理トランザクションはオプションではありません。

実際の質問:ステートフルセッションBeanで操作を実行し、外部の@Timeoutメソッドを使用して監視するという解決策のアイデアがありますが、これを機能させるには、そのセッションBeanを中断またはキャンセルできる必要があります。これを行う方法はありますか?

4

1 に答える 1

3

仕様によると(§4.3.14):

コンテナは、ステートフルおよびステートレスの各セッションBeanインスタンスへの呼び出しをシリアル化します。ほとんどのコンテナは、同時に実行されるセッションBeanの多くのインスタンスをサポートします。ただし、各インスタンスには、シリアル化された一連のメソッド呼び出しのみが表示されます。したがって、ステートフルまたはステートレスのセッションBeanは、再入可能としてコーディングする必要はありません。

したがって、同じインスタンスの別のメソッドがまだ実行されているときに、セッションBeanインスタンスのメソッドを呼び出す方法はありません。

于 2011-05-27T13:44:36.753 に答える