1回のEJB実行内で複数のスレッドを実行する方法はありますか?
私がやろうとしているのは、基本的にETLプロセスですonMessage
。MDB(@MessageDriven
)のメソッドはクエリを実行し、複数のスレッドを開始して、ターゲットテーブル(JPAではなくすべてネイティブJDBC)に行を挿入します。
同じように簡単に@Stateless
セッションBeanにすることもできます。
問題はExecutors.newFixedThreadPool
、EJB内で使用できますか?仕様に従って厳密に合法ではない場合でも、バックグラウンドスレッドがJava EE /コンテナ管理のリソースにアクセスしていない場合は、それを回避できますか?
そうでない場合、これを行うためのより良い方法はありますか?私は知って@Async
いますが、ジョブごとに許可されるスレッドの数を制御できなくなります。