Wie wird WorkManagers in WebLogic 10.3?
-
16-09-2019 - |
Frage
Ich möchte einen Workmanager verwenden, um einige parallele Jobs auf einem WebLogic 10.3 App-Server zu planen.
http: // java .sun.com / JavaEE / 5 / docs / api / javax / Mittel / spi / work / WorkManager.html
Ich finde die Oracle / BEA-Dokumentation ein wenig fragmentiert und schwer zu folgen und es keine gute Beispiele für WorkManagers von EJB 3.0 verwendet wird.
Insbesondere, ich möchte wissen:
1) Was genau, wenn überhaupt, dann mache ich in meiner Deployment-Deskriptoren (ejb-jar.xml und Freunde setzen müssen)?
2) Ich mag die @Resource Anmerkung verwenden, um die Work in meinen EJB 3-Session-Bean zu injizieren. Was „name“ muss ich für die Ressource verwenden?
3) Wie konfiguriere ich die Anzahl der Threads und andere Parameter für das Workmanager.
Mein Verständnis ist, dass die zugrunde liegende Implementierung auf WebLogic ist CommonJ, aber ich würde es vorziehen, einen nicht-proprietären Ansatz, wenn möglich zu verwenden.
Lösung
Als erstes werden Sie die Dokumentation von CommonJ finden, eine Implementierung der Timer und Work Manager API entwickelt von BEA Oracle und IBM, in Timer und Work Manager API (CommonJ) Leitfaden des Programmierers. Sie bieten ein Work Manager Beispiel, aber es ist in diesem Dokument nicht injiziert werden.
1) Was genau, wenn überhaupt, dann mache ich in meiner Deployment-Deskriptoren (ejb-jar.xml und Freunde setzen müssen)?
Nach dem Work Manager Deployment Abschnitt:
Arbeits Manager werden bei der Definition Server-Ebene über eine Ressource-ref in der entsprechender Deployment Descriptor. Dies kann web.xml oder ejb-jar.xml sein unter anderem.
In der folgenden Deployment Descriptor Fragment veranschaulicht, wie konfigurieren ein
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> ...
Hinweis: Der empfohlene Präfix für den JNDI-Namensraum für Work Objekte sind Java. comp / env / wm
Überprüfen Sie die Work javadocs, um weitere Informationen (zB „ die res-auth und res-Sharing-Bereiche in dieser Version der Spezifikation ignoriert werden. die EJB oder Servlet dann das Workmanager verwenden können, wie es muss. “) .
2) Ich mag die @Resource Anmerkung verwenden, um die Work in meinen EJB 3-Session-Bean zu injizieren. Was „name“ muss ich für die Ressource verwenden?
Ich würde sagen, so etwas wie diese (nicht getestet):
@ResourceRef(jndiName="java:comp/env/wm/MyWorkManager",
auth=ResourceRef.Auth.CONTAINER,
type="commonj.work.WorkManager",
name="MyWorkManager")
3) Wie konfiguriere ich die Anzahl der Threads und andere Parameter für das Workmanager.
Sehen Sie die Beschreibung des <work-manager>
-Element und Arbeits Manager Mit geplanten Arbeiten zur Optimierung für detaillierte Informationen über Arbeits Manager
Mein Verständnis ist, dass die zugrunde liegende Implementierung auf WebLogic ist CommonJ, aber ich würde es vorziehen, einen nicht-proprietären Ansatz, wenn möglich zu verwenden.
Ich habe keinen anderen Vorschlag (und, solange diese Implementierung der Standards folgt, hätte ich nichts dagegen es verwendet wird).
Andere Tipps
Die Weblogic Dokumentation wird Ihre Fragen beantworten. Arbeits Manager Mit geplanten Arbeiten zur Optimierung