アノテーション型 ManagedExecutorDefinition
@RepeatableSE(List.class) @RetentionSE(RUNTIMESE) @TargetSE(TYPESE) public @interface ManagedExecutorDefinition
name()属性で指定された JNDI 名でコンテナーによって JNDI に登録されるManagedExecutorServiceを定義します。アプリケーションコンポーネントは、
Resourceアノテーションのlookup属性でこの JNDI 名を参照できます。@ManagedExecutorDefinition( name = "java:module/concurrent/MyExecutor", context = "java:module/concurrent/MyExecutorContext", hungTaskThreshold = 120000, maxAsync = 5) @ContextServiceDefinition( name = "java:module/concurrent/MyExecutorContext", propagated = { SECURITY, APPLICATION }) public class MyServlet extends HttpServlet { @Resource(lookup = "java:module/concurrent/MyExecutor", name = "java:module/concurrent/env/MyExecutorRef") ManagedExecutorService myExecutor;デプロイ記述子のリソース環境参照は、同様に
lookup-nameを指定できます。<resource-env-ref> <resource-env-ref-name>java:module/env/concurrent/MyExecutorRef</resource-env-ref-name> <resource-env-ref-type>jakarta.enterprise.concurrent.ManagedExecutorService</resource-env-ref-type> <lookup-name>java:module/concurrent/MyExecutor</lookup-name> </resource-env-ref><managed-executor>デプロイ記述子要素を使用してManagedExecutorServiceを定義することもできます。元:<managed-executor> <name>java:module/concurrent/MyExecutor</name> <context-service-ref>java:module/concurrent/MyExecutorContext</context-service-ref> <hung-task-threshold>120000</hung-task-threshold> <max-async>5</max-async> </managed-executor>managed-executorとManagedExecutorDefinitionが同じ名前の場合、それらの属性がマージされて単一のManagedExecutorService定義が定義され、managed-executorデプロイ記述子エントリで指定された各属性が、対応するアノテーションの属性よりも優先されます。- 導入:
- 3.0
必須定数のサマリー
必須要素 修飾子と型 必須要素 説明 StringSEnameManagedExecutorServiceインスタンスの JNDI 名。
オプション要素の概要
オプション要素 修飾子と型 オプションの要素 説明 StringSEcontextこのエグゼキューターで実行されるタスクとアクションにコンテキストを適用する方法を決定するContextServiceインスタンスの名前。longhungTaskThresholdタスクまたはアクションがハングしていると見なされるまでに実行できるミリ秒単位の時間。intmaxAsyncこのエグゼキュータが非同期で同時に実行するコンテキストタスクとアクションの上限。
要素の詳細
name
StringSE name
ManagedExecutorServiceインスタンスの JNDI 名。JNDI 名は、次のような有効な Jakarta EE 名前空間にある必要があります。- java: コンプ
- java: モジュール
- java: アプリ
- java: グローバル
- 戻り値:
ManagedExecutorServiceJNDI 名。
context
StringSE context
このエグゼキューターで実行されるタスクとアクションにコンテキストを適用する方法を決定するContextServiceインスタンスの名前。この名前は、
ContextServiceDefinitionの名前、context-serviceデプロイ記述子要素の名前、または Jakarta EE のデフォルトContextServiceインスタンスjava:comp/DefaultContextServiceの JNDI 名にすることができます。ContextServiceの名前は、このManagedExecutorDefinitionの名前よりも詳細であってはなりません。例: このManagedExecutorDefinitionの名前がjava:appにある場合、ContextServiceはjava:appまたはjava:globalにある可能性がありますが、どのモジュールのContextService定義を使用する必要があるかが曖昧になるjava:moduleにはありません。デフォルト値
java:comp/DefaultContextServiceは、Jakarta EE デフォルトContextServiceの JNDI 名です。- 戻り値:
- コンテキストをキャプチャーして伝播またはクリアするための
ContextServiceの名前。
- デフォルト:
- "java:comp/DefaultContextService"
maxAsync
int maxAsync
このエグゼキュータが非同期で同時に実行するコンテキストタスクとアクションの上限。この制約は、スレッドが
CompletableFuture.join()をリクエストし、アクションがまだ開始されていない場合にインラインで実行される場合など、executor がインラインで実行するタスクおよびアクションには適用されません。-1のデフォルト値は無制限を示しますが、システムのリソース制約の影響を受けます。- 戻り値:
- 非同期実行の上限。
- デフォルト:
- -1