@TargetSE(valueSE=METHODSE) @RetentionSE(valueSE=RUNTIMESE) public @interface AroundTimeout
InvocationContext の単一パラメーターを取り、戻り値の型 ObjectSE を持っている必要があります。メソッドは、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.