Aggregation rows on Large Portlets can cause the Application to Crash With Out of Memory Errors

Document ID : KB000032061
Last Modified Date : 14/02/2018
Show Technical Document Details

Symptoms:

Having aggregation rows in portlets that use Out of the Box (OOTB) Data providers (Such as Task or Team) causes out of memory issues in environments that have a large amount of data. Symptoms of observed can included the application going down or hanging when the portlet is accessed as the memory reaches it's maximum limit.

Steps to Reproduce: (one example)

1. Login to the application as an administrator user.
2. Create a new portlet based on an OOTB data provider such as Task or Team Allocations. Add multiple columns to the view layout.
3. For the portlet Aggregation, create a new Aggregation row called Total and select the Function of Sum.
4. Save and Exit this portlet.
5. Place the portlet on your Overview page to view the results.
 

Cause:

 

This has been identified as: CLRT-74884/CLRT-77376 where all rows are fetched from the database instead of a limited amount of rows. 

 

Resolution:

Resolved in PPM 14.3

Due to the complexity, dependencies and risk, this issue is not feasible to backport a fix to v13.3 or earlier releases. Please see the workaround noted below. 

Workaround:

Remove the aggregation row from the portlet. 

  1. Go to Administration, Portlets.
  2. Click on the portlet with the issue.
  3. Select the List Column Section tab then Aggregation.
  4. Check the check box next to the Aggregation row(s) to remove and click Remove.
  5. You can also prevent users from adding their own aggregation rows to the portlet by doing the below. (Note that this will prevent them from making any configuration changes on the portlet) 
    • Select the List Column Section tab then Options.
    • Uncheck the checkbox next to Allow Configuration and then click Save and Return.
  6. To Publish the change, click on the General tab and then click Publish. Note: Publishing will undo any personal configuration a user may have made on their portlet view. If a user has not customized their portlet, they will see the change immediately after saving. Publishing is not required for them.

Additional Information:

Below is an excerpt from the Studio Developer's Guide regarding publishing:

You can overwrite list and filter views for users who have personalized views by publishing new views. A user who has not personalized a view sees the changes immediately when you save changes to a view in Studio. A user who has personalized the view does not see changes to the new view until you publish the changes. If you are using partitions, the new published view affects only the partition you select.