If you do not explicitly assign a Work Manager to an application, it will use the default Weblogic Work Manager. A module can be assigned to your custom Work Manager by using the <dispatch-policy> element in the deployment descriptor. As an alternative, you can define new Work Managers in your deployment descriptors through the <work-manager> element and associate as well constraints to them. Let’s see how to apply both approaches for all supported descriptors (weblogic.xml, weblogic-ejb-jar.xml, weblogic-application.xml):
Applying a Work Manager in your Web applications (weblogic.xml)
If you want to apply your Work Manager policies in your Web applications, you can reference it through the wl-dispatch-policy element in the weblogic.xml file. In the following example, we are using the ExampleWM (that we have formerly created through the Web console):
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"> <wl-dispatch-policy>ExampleWM</wl-dispatch-policy> </weblogic-web-app>
Web applications can even reference a Work Manager at more granular level, such as at Servlet level, by setting the parameter wl-dispatch-policy as init parameter of your servlet. In the following example, we are associating the ExampleWM Work Manager with Servlet “WorkServlet”:
<web-app> <servlet> <servlet-name>WorkServlet</servlet-name> <servlet-class>workservlet.WorkServlet</servlet-class> <init-param> <param-name>wl-dispatch-policy</param-name> <param-value>ExampleWM</param-value> </init-param> </servlet> </web-app>
Applying a Work Manager in your EJBs (weblogic-ejb-jar.xml)
Work Manager can be as well bound to a specific EJB application by mentioning it into the dispatch-policy element of the weblogic-ejb.jar.xml. In the following example, we are binding the ExampleWM to our WorkEJB:
<weblogic-ejb-jar> <weblogic-enterprise-bean> <ejb-name>WorkEJB</ejb-name> <jndi-name>core_work_ejb_workbean_WorkEJB</jndi-name> <dispatch-policy>ExampleWM</dispatch-policy> </weblogic-enterprise-bean> </weblogic-ejb-jar>
Applying a Work Manager in your application (weblogic-application.xml)
If you want to define a Work Manager and use it across all modules contained in EAR, then you can define it into the WLS Enterprise application descriptor named weblogic-application.xml file. In the following example, we are defining a Work Manager named JEEScopedWorkManager with Min and Max constraints:
<weblogic-application> <max-threads-constraint> <name>j2ee_maxthreads</name> <count>50</count> </max-threads-constraint> <min-threads-constraint> <name>j2ee_minthreads</name> <count>1</count> </min-threads-constraint> <work-manager> <name>JEEScopedWorkManager</name> </work-manager> </weblogic-application>