@TargetSE(valueSE=METHODSE) @RetentionSE(valueSE=RUNTIMESE) public @interface AroundTimeout
InvocationContext
の単一パラメーターを取り、戻り値の型 Object
SE を持っている必要があります。メソッドは、abstract、final、static として宣言しないでください。@AroundTimeout public Object interceptTimeout(InvocationContext ctx) throws Exception { ... }
AroundTimeout
メソッドは、インターセプタークラス、インターセプタークラスのスーパークラス、ターゲットクラス、/ またはターゲットクラスのスーパークラスで宣言できます。
特定のクラスは、複数の AroundTimeout
メソッドを宣言してはなりません。
AroundTimeout
メソッドは、対応するタイムアウトメソッドが呼び出すことができるコンポーネントまたはリソースを呼び出すことができます。
InvocationContext.getTimer()
を使用すると、AroundTimeout
メソッドでタイムアウトに関連付けられたタイマーオブジェクトを取得できます。
一般に、AroundTimeout
メソッドの呼び出しは、それらが介入しているタイムアウトメソッドと同じトランザクションおよびセキュリティコンテキスト内で発生します。
AroundTimeout
メソッドは、それらが介入しているタイムアウトメソッドの throws 節で許可されている例外をスローする場合があります。InvocationContext.proceed()
を呼び出すことで、例外をキャッチして抑制し、回復する場合があります。
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.