Work Manager request classes in WebLogic Server

Web Logic Server introduced Work Manager, which acts as the mechanism to prioritize the work and allocate the threads from the Thread Pool based on the rules defined for execution. The Web Logic Admin can use the pre-defined rules provided by the server or can setup the rules considering the run time performance, throughput and monitoring activities.

Below given are the pre-defined Rules /Constraints provided by Web Logic Server:

1) Fair Share Request Class:
2) Response Time Request Class:
3) Min Threads Constraint:
4) Max Threads Constraint:
5) Capacity Constraint
6) Context Request Class

Fair Share Request Class:
This rule configures the average thread use time required to process the received requests
Uses the relative value and not the percentage value
Minimum value is set to 1 and maximum value could be 1000

Example: Let say 2 Request Classes such as RC1 and RC2 are defined as 120 and 40, then the relative value will be 3:1 Thus the RC1 chance to get executed by the next free thread will be (120/160) = 0.75 %.
Similarly, the RC2 chance to get executed by the next free thread will be (40/160) =0.25 %

Response Time Request Class:
This rule configures the response time goal in milliseconds. The tolerable waiting time is computed by WebLogic Server by calculating the average response time goal for the received requests and schedules the request to ensure the average wait for the request should be less than to the defined tolerable waiting time.
Default value for response time goal is -1 which indicates that response time goal is not defined to be calculated at run time.

Context Request Class:
This rule configures the Request classes to the received service request based on the request context information like current user or current user group.

Example:
<work-manager>
<name>ResponseTime_RCWM</name>
<response-time-request-class>
<name>TestApp_ResponseTime</name>
<goal-ms>1000</goal-ms>
</response-time-request-class>
</work-manager>

<work-manager>
<name>Context_RCWM</name>
<context-request-class>
<name>TestApp_Context</name>
<context-case>
<user-name>system</user-name>
<request-class-name>high_fairshare</request-class-name>
</context-case>
<context-case>
<group-name>everyone</group-name>
<request-class-name>low_fairshare</request-class-name>
</context-case>
</context-request-class>
</work-manager>
It is preferable to set session timeout values to avoid session expiration while request wait in the Work Manager queue.

Work Manager defines constraints which sets the limit for the minimum and maximum threads that can be allocated to execute the received service requests. It also calculates the total number of received requests that can be queued (waiting to be executed in the queue) and rejects the received request if exceeds that limit to avoid server health issue.

Min Threads Constraint:
This rule sets the minimum limit of threads required for executing the received requests for processing.
Default value is unlimited.
Max Threads Constraint:
This rule sets the maximum limit of threads required for executing the received requests for processing

Capacity Constraint:
This rule sets the capacity value which when reached allows Web Logic Server to reject the received requests from processing.