第9章 Jakarta Concurrency
Jakarta Concurrency は、Jakarta SE コンカレンシーユーティリティーを Jakarta EE アプリケーション環境仕様で使用できるようにする API です。これは、Jakarta Concurrency 仕様 で定義されています。JBoss EAP では、Jakarta Concurrency ユーティリティーのインスタンスの作成、編集、および削除を行えます。そのため、使用するアプリケーションにインスタンスをすぐに利用できるようにできます。
Jakarta Concurrency を使用すると、既存のコンテキストのアプリケーションスレッドをプルし、独自のスレッドで使用することにより、呼び出しコンテキストを拡張できるようになります。呼び出しコンテキストのこの拡張には、デフォルトでクラスローディング、JNDI、およびセキュリティーコンテキストが含まれます。
Jakarta Concurrency のタイプには以下が含まれます。
- コンテキストサービス
- 管理対象スレッドファクトリー
- 管理対象エグゼキューターサービス
- 管理対象スケジュール済みエグゼキューターサービス
例: standalone.xml の Jakarta Concurrency
9.1. コンテキストサービス リンクのコピーリンクがクリップボードにコピーされました!
コンテキストサービス (javax.enterprise.concurrent.ContextService) を使用すると、既存のオブジェクトからコンテキストプロキシーをビルドできます。コンテキストプロキシーにより、コンテキストが作成または呼び出されたとき (呼び出しが元のオブジェクトに転送される前) に他の Jakarta Concurrency ユーティリティーによって使用される呼び出しコンテキストが準備されます。
コンテキストサービスコンカレンシーユーティリティーの属性には以下のものが含まれます。
-
name: すべてのコンテキストサービス内の一意の名前。 -
jndi-name: JNDI でコンテキストサービスを配置する場所を定義します。 -
use-transaction-setup-provider: 任意。プロキシーオブジェクトを呼び出す場合に、コンテキストサービスによってビルドされたコンテキストプロキシーがコンテキストでトランザクションを一時停止するかどうかを示します。デフォルト値はfalseですが、デフォルトのコンテキストサービスの値はtrueです。
コンテキストサービスコンカレンシーユーティリティーの使用方法は、上記の例を参照してください。
例: 新しいコンテキストサービスの追加
/subsystem=ee/context-service=newContextService:add(jndi-name=java:jboss/ee/concurrency/contextservice/newContextService)
/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:write-attribute(name=jndi-name, value=java:jboss/ee/concurrency/contextservice/changedContextService)
この操作にはリロードが必要です。
例: コンテキストサービスの削除
/subsystem=ee/context-service=newContextService:remove()
/subsystem=ee/context-service=newContextService:remove()
この操作にはリロードが必要です。