• 検索結果がありません。

章 JAKARTA CONCURRENCY

コンテキストサービス (javax.enterprise.concurrent.ContextService) を使用すると、既存のオブジェ クトからコンテキストプロキシーをビルドできます。コンテキストプロキシーにより、コンテキストが 作成または呼び出されたとき (呼び出しが元のオブジェクトに転送される前) に他の Jakarta

Concurrency ユーティリティーによって使用される呼び出しコンテキストが準備されます。

コンテキストサービスコンカレンシーユーティリティーの属性には以下のものが含まれます。

name: すべてのコンテキストサービス内の一意の名前。

jndi-name: JNDI でコンテキストサービスを配置する場所を定義します。

use-transaction-setup-provider: 任意。プロキシーオブジェクトを呼び出す場合に、コンテキ ストサービスによってビルドされたコンテキストプロキシーがコンテキストでトランザクショ ンを一時停止するかどうかを示します。デフォルト値は false ですが、デフォルトのコンテキ ストサービスの値は true です。

コンテキストサービスコンカレンシーユーティリティーの使用方法は、上記の例を参照してください。

:

新しいコンテキストサービスの追加 新しいコンテキストサービスの追加

:

コンテキストサービスの変更 コンテキストサービスの変更

この操作にはリロードが必要です。

:

コンテキストサービスの削除 コンテキストサービスの削除

この操作にはリロードが必要です。

9.2. 管理対象スレッドファクトリー

管理対象スレッドファクトリー (javax.enterprise.concurrent.ManagedThreadFactory) コンカレン シーユーティリティーを使用すると、Jakarta EE アプリケションで Java スレッドを作成できます。

JBoss EAP は管理対象スレッドファクトリーインスタンスを処理するため、Jakarta EE アプリケーショ

ンはライフサイクル関連メソッドを呼び出すことができません。

管理対象スレッドファクトリーコンカレンシーユーティリティーの属性には以下のものがあります。

context-service: すべての管理対象スレッドファクトリー内の一意の名前。

jndi-name: JNDI で管理対象スレッドファクトリーを配置する場所を定義します。

priority: 任意。ファクトリーによって作成された新しいスレッドの優先度を示します。デフォ

ルトは 5 です。

:

新しい管理対象スレッドファクトリーの追加 新しい管理対象スレッドファクトリーの追加

/subsystem=ee/context-service=newContextService:add(jndi-name=java:jboss/ee/concurrency/contextservice/newContextService)

/subsystem=ee/context-service=newContextService:write-attribute(name=jndi-name, value=java:jboss/ee/concurrency/contextservice/changedContextService)

/subsystem=ee/context-service=newContextService:remove()

:

管理対象スレッドファクトリーの変更 管理対象スレッドファクトリーの変更

この操作にはリロードが必要です。同様に、他の属性を変更することもできます。

:

管理対象スレッドファクトリーの削除 管理対象スレッドファクトリーの削除

この操作にはリロードが必要です。

9.3. 管理対象エグゼキューターサービス

管理対象エグゼキューターサービス (javax.enterprise.concurrent.ManagedExecutorService) を使用

すると、Jakarta EE アプリケーションで非同期実行向けタスクを送信できます。JBoss EAP は管理対象

エグゼキューターサービスインスタンスを処理するため、Jakarta EE アプリケーションはライフサイク ル関連メソッドを呼び出すことができません。

管理対象エグゼキューターサービスコンカレンシーユーティリティーの属性には以下のものがありま す。

context-service: オプション。既存のコンテキストサービスをその名前で参照します。指定さ

れた場合は、参照されたコンテキストサービスがタスクをエグゼキューターに送信したときに 存在する呼び出しコンテキストを取得します (このコンテキストはタスクの実行時に使用されま す)。

jndi-name: JNDI で管理対象スレッドファクトリーを配置する場所を定義します。

max-threads: エグゼキューターによって使用されるスレッドの最大数を定義します。未定義の

場合は、core-threads からの値が使用されます。

thread-factory: 既存の管理対象スレッドファクトリーをその名前で参照して内部スレッドの作

成を処理します。指定されない場合は、デフォルト設定の管理対象スレッドファクトリーが作 成され、内部で使用されます。

core-threads: エクゼキューターによって使用されるスレッドの最小数。この属性を定義しない

と、プロセッサーの数を基にしてデフォルトが算出されます。0 を値として指定することは推 奨されません。キューイングストラテジーの決定にこの値がどのように使用されるか

は、queue-length 属性を参照してください。

keepalive-time: 内部スレッドをアイドル状態にできる時間 (ミリ秒単位) を定義します。属性の デフォルト値は 60000 です。

queue-length: エクゼキューターのタスクキューの容量を示します。長さが 0 の場合は直接ハ ンドオフを意味し、拒否される可能性があります。この属性が定義されていない場合または

Integer.MAX_VALUE に設定された場合は、非有界のキューが使用されるべきであることを示

します。他のすべての値は正確なキューのサイズを指定します。非有界のキューまたは直接ハ ンドオフが使用される場合は、0 よりも大きな core-threads の値が必要になります。

/subsystem=ee/managed-thread-factory=newManagedTF:add(context-service=newContextService, jndi-name=java:jboss/ee/concurrency/threadfactory/newManagedTF, priority=2)

/subsystem=ee/managed-thread-factory=newManagedTF:write-attribute(name=jndi-name, value=java:jboss/ee/concurrency/threadfactory/changedManagedTF)

/subsystem=ee/managed-thread-factory=newManagedTF:remove()

hung-task-threshold: この属性は今後使用するためのものです。

long-running-tasks: この属性は今後使用するためのものです。

reject-policy: タスクがエグゼキューターによって拒否されたときに使用するポリシーを定義し

ます。属性値は、デフォルト値で、例外が発生する ABORT、または例外を発生する前にエグ ゼキューターがもう 1 度送信を試みる RETRY_ABORT のいずれかになります。

:

新しい管理対象エグゼキューターサービスの追加 新しい管理対象エグゼキューターサービスの追加

:

管理対象エグゼキューターサービスの変更 管理対象エグゼキューターサービスの変更

この操作にはリロードが必要です。同様に、他の属性を変更することもできます。

:

管理対象エグゼキューターサービスの削除 管理対象エグゼキューターサービスの削除

この操作にはリロードが必要です。

9.4. 管理対象スケジュール済みエグゼキューターサービス

管理対象スケジュール済みエグゼキューターサービス

(javax.enterprise.concurrent.ManagedScheduledExecutorService) を使用すると、Jakarta EE アプ リケーションで非同期実行向けタスクをスケジュールできます。JBoss EAP は管理対象スケジュール済 みエグゼキューターサービスインスタンスを処理するため、Jakarta EE アプリケーションはライフサイ クル関連メソッドを呼び出すことができません。

管理対象エグゼキューターサービスコンカレンシーユーティリティーの属性には以下のものがありま す。

context-service: 既存のコンテキストサービスをその名前で参照します。指定された場合は、

参照されたコンテキストサービスがタスクをエグゼキューターに送信したときに存在する呼び 出しコンテキストを取得します (このコンテキストはタスクの実行時に使用されます)。 hung-task-threshold: この属性は今後使用するためのものです。

keepalive-time: 内部スレッドをアイドル状態にできる時間 (ミリ秒単位) を定義します。属性の デフォルト値は 60000 です。

reject-policy: タスクがエグゼキューターによって拒否されたときに使用するポリシーを定義し

ます。属性値は、デフォルト値で、例外が発生する ABORT、または例外を発生する前にエグ ゼキューターがもう 1 度送信を試みる RETRY_ABORT のいずれかになります。

core-threads: スケジュール済みエグゼキューターによって使用されるスレッドの最小数を定義

します。

jndi-name: JNDI で管理対象スケジュール済みエグゼキューターサービスを配置する場所を定

/subsystem=ee/managed-executor-service=newManagedExecutorService:add(jndi-name=java:jboss/ee/concurrency/executor/newManagedExecutorService, core-threads=7, thread-factory=default)

/subsystem=ee/managed-executor-service=newManagedExecutorService:write-attribute(name=core-threads,value=10)

/subsystem=ee/managed-executor-service=newManagedExecutorService:remove()

jndi-name: JNDI で管理対象スケジュール済みエグゼキューターサービスを配置する場所を定 義します。

long-running-tasks: この属性は今後使用するためのものです。

thread-factory: 既存の管理対象スレッドファクトリーをその名前で参照して内部スレッドの作

成を処理します。指定されない場合は、デフォルト設定の管理対象スレッドファクトリーが作 成され、内部で使用されます。

:

新しい管理対象スケジュール済みエグゼキューターサービスの追加 新しい管理対象スケジュール済みエグゼキューターサービスの追加

この操作にはリロードが必要です。

:

管理対象スケジュール済みエグゼキューターサービスの変更 管理対象スケジュール済みエグゼキューターサービスの変更

この操作にはリロードが必要です。同様に、他の属性を変更することができます。

:

管理対象スケジュール済みエグゼキューターサービスの削除 管理対象スケジュール済みエグゼキューターサービスの削除

この操作にはリロードが必要です。

/subsystem=ee/managed-scheduled-executor-

service=newManagedScheduledExecutorService:add(jndi-name=java:jboss/ee/concurrency/scheduledexecutor/newManagedScheduledExecutorService, core-threads=7, context-service=default)

/subsystem=ee/managed-scheduled-executor-service=newManagedScheduledExecutorService:write-attribute(name=core-threads, value=10)

/subsystem=ee/managed-scheduled-executor-service=newManagedScheduledExecutorService:remove()