2.12.4 EJBタイマの削除
EJBタイマを削除するには,EJBタイマキャンセルを行います。
なお,single-eventタイマの場合は,タイムアウトメソッドのコールバック完了時にEJBタイマが削除されます。intervalタイマの場合,EJBタイマキャンセルが行われるまでEJBタイマは削除されません。
EJBタイマキャンセルでは,EJBタイマキャンセルメソッド(javax.ejb.Timerオブジェクトのcancelメソッド)によって,EJBタイマが一つ削除されます。EJBタイマが削除されると,それ以降のコールバックは実行されません。EJBタイマキャンセルによってEJBタイマが削除されるタイミングは,EJBタイマキャンセルがトランザクションの管理下で行われるかどうかによって異なります。
- EJBタイマキャンセルがトランザクションの管理下で行われる場合
-
EJBタイマは,トランザクションのコミット時に削除されます。そのため,EJBタイマキャンセルメソッドが呼ばれてから,トランザクションがコミットするまでの間にタイムアウト時刻になることがあります。
トランザクションがロールバックされた場合は,EJBタイマキャンセルは取り消されます。
- EJBタイマキャンセルがトランザクションの管理下で行われない場合
-
EJBタイマは,EJBタイマキャンセルメソッドが呼ばれた直後に削除されます。
- 参考
-
J2EEアプリケーションの停止時には,停止対象のJ2EEアプリケーションのEJBタイマはすべて削除されます。J2EEサーバの停止または異常終了時には,J2EEサーバ上のEJBタイマはすべて削除されます。