Configuring a Maximum Threads Constraint to Avoid Out of Memory Errors

During the processing of large BI Publisher reports Oracle WebLogic Server can use multiple concurrent threads to generate the report.

If the threads are not constrained, out of memory errors can occur when Oracle WebLogic Server allots too many threads to report generation. To avoid this error, you can create a Work Manager to enforce the maximum number of threads that Oracle WebLogic Server can allot to BI Publisher report processing.

To configure a maximum threads constraint perform the following procedures:

  1. Creating the Maximum Threads Constraint in Oracle WebLogic Server

  2. Creating the Work Manager (XdoWorkManager)

  3. Redeploying the xmlpserver.ear File

    Note:

    This procedure describes redeploying the xmlpserver.ear file to activate the new Work Manager. Alternatively, you can perform one of the following instead of step 3:

    • Restart (stop & start) the bipublisher application

    • Restart the Oracle WebLogic Server instances (for example, bi_server1, bi_server2)

Once this initial setup procedure is completed, changing the value of the maximum threads count (for example from 10 to 20) takes effect immediately; no restart or redeployment operations are required.

Creating the Maximum Threads Constraint in Oracle WebLogic Server

You create the maximum threads constraint component in the Oracle WebLogic Console.

To create the maximum threads constraint component:
  1. Log in to Oracle WebLogic Console.
  2. In the Domain Structure pane, click Work Managers.
  3. In the Change Center pane, click Lock & Edit.
  4. In the Work Managers, Request Classes and Constraints table, click New.
  5. In the Create a New Work Manager Component dialog, select Maximum Threads Constraint and click Next.
  6. Under Maximum Threads Constraint Properties, enter the following property values:
    • Name — enter XdoMaxThreadsConstraint

    • Count — enter the maximum number of threads to allot for BI Publisher report generation, for example, 10

    Click Next.

  7. Under Select deployment targets, select "bi_cluster" and then click Finish.

Creating the Work Manager (XdoWorkManager)

Now that you have created the Maximum Threads Constraint component and named it "XdoMaxThreadsConstraint"; next create the work manager and associate it to the XdoMaxThreadsConstraint component.

To create the work manager:

  1. While still on the Summary of Work Managers page, click New again.
  2. In the Create a New Work Manager Component dialog, select Work Manager and click Next
  3. Under Work Manager Properties enter the Name property as: XdoWorkManager.
  4. Under Select deployment targets, select "bi_cluster" and then click Finish.
  5. Back on the Summary of Work Managers page, click your newly created XdoWorkManager link.
  6. On the Settings for XdoWorkManager page, on the Configuration tab, specify the Maximum Threads Constraint as XdoMaxThreadsConstraint and click Save.

Redeploying the xmlpserver.ear File

You use the Upgrade Application Assistant to redeploy the xmlpserver.ear file.

To redeploy the xmlpserver.ear file:
  1. In the left pane of the Console, select Deployments.

    A table in the right pane displays all deployed applications and modules.

  2. In the table, select the bipublisher application.
  3. Click Update.
  4. In the Upgrade Application Assistant, click Next.
  5. Click Finish.
  6. Click Activate Changes in the Change Center pane.