質問

WorkManager を使用して、WebLogic 10.3 アプリケーション サーバー上でいくつかの並列ジョブをスケジュールしたいと考えています。

http://java.sun.com/javaee/5/docs/api/javax/resource/spi/work/WorkManager.html

Oracle/BEA のドキュメントは少し断片的で理解しにくいと感じています。また、EJB 3.0 の WorkManager を使用するための適切な例がありません。

具体的に知りたいのは、次のとおりです。

1) デプロイメント記述子 (ejb-jar.xml とその仲間) に正確に何を入力する必要がありますか?

2) @Resource アノテーションを使用して WorkManager を EJB 3 セッション Bean に挿入したいと考えています。リソースにはどのような「名前」を使用すればよいですか?

3) WorkManager のスレッド数やその他のパラメータを設定するにはどうすればよいですか。

私の理解では、WebLogic の基礎となる実装は CommonJ ですが、可能であれば独自のアプローチではないアプローチを使用したいと考えています。

役に立ちましたか?

解決

まず、CommonJ のドキュメントを見つけます。CommonJ は、によって開発された Timer and Work Manager API の実装です。 BEA オラクルとIBMは、 タイマーおよびワーク マネージャー API (CommonJ) プログラマーズ ガイド. 。ワーク マネージャーの例が提供されていますが、このドキュメントには挿入されていません。

1) デプロイメント記述子 (ejb-jar.xml とその仲間) に正確に何を入力する必要がありますか?

による ワークマネージャーの展開 セクション:

ワークマネージャーは、適切な展開記述子のリソースREFを介してサーバーレベルで定義されます。これは、とりわけweb.xmlまたはejb-jar.xmlなどです。

次の展開記述子フラグメントは、 WorkManager:

...
<resource-ref>
   <res-ref-name>wm/MyWorkManager</res-ref-name>
   <res-type>commonj.work.WorkManager</res-type>
   <res-auth>Container</res-auth>
   <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
...

注記: WorkManagerオブジェクトのJNDI名前空間に推奨されるプレフィックスは、Java:comp/env/wmです。

チェックしてください ワークマネージャー 詳細については javadocs (例:」res-auth および res-sharing スコープは、このバージョンの仕様では無視されます。EJB またはサーブレットは、必要に応じて WorkManager を使用できるようになります。").

2) @Resource アノテーションを使用して WorkManager を EJB 3 セッション Bean に挿入したいと考えています。リソースにはどのような「名前」を使用すればよいですか?

私は次のようなことを言うと思います(テストされていません)。

@ResourceRef(jndiName="java:comp/env/wm/MyWorkManager",
auth=ResourceRef.Auth.CONTAINER,
type="commonj.work.WorkManager",
name="MyWorkManager")

3) WorkManager のスレッド数やその他のパラメータを設定するにはどうすればよいですか。

の説明を参照してください。 <work-manager> 要素と ワークマネージャーを使用してスケジュールされた作業を最適化する ワークマネージャーの詳細については、

私の理解では、WebLogic の基礎となる実装は CommonJ ですが、可能であれば独自のアプローチではないアプローチを使用したいと考えています。

他に提案はありません (そして、この実装が標準に従っている限り、それを使用しても構わないと思います)。

他のヒント

WebLogicのドキュメントには、あなたの質問にお答えします。 P>

scroll top