ALERT: Some images may not load properly within the Knowledge Base Article. If you see a broken image, please right-click and select 'Open image in a new tab'. We apologize for this inconvenience.

Cabi errors while running reports against large groups

book

Article ID: 214149

calendar_today

Updated On:

Products

DX Unified Infrastructure Management (Nimsoft / UIM)

Issue/Introduction

We are able to run CABI reports against smaller groups of servers, but the same reports run for several minutes against larger groups and eventually fail with an error message like the below:

 

Cause

CABI/Jasperserver has a limit to the number of rows which can be returned in a CrossTab report in order to avoid OutOfMemory errors.

Check the jasperserver.log on the CABI robot (e.g. \Nimsoft\probes\service\wasp\webapps\cabijs\WEB-INF\logs\) for an error like the following:

2021-04-30T12:23:03,823 ERROR AsyncJasperPrintAccessor,pool-7-thread-16:321 - Error during report execution net.sf.jasperreports.engine.JRRuntimeException: Crosstab bucket/measure limit (100,000) exceeded.
 

Environment

Release : 20.3

Component : UIM OPERATOR CONSOLE - CABI REPORTS AND INTEGRATION

Resolution

This is a known issue with Jasperserver as it is trying to limit the memory usage and improve performance-

https://community.jaspersoft.com/wiki/getting-crosstabbucketmeasurelimit-error-when-runnig-cross-tab-report-tibco-jasperreports

So we can increase this limit but we may also need to increase the CABI/WASP memory as well.  First we would have to increase this limit and see what the effect is.

According to TIBCO/Jaspersoft, we have to be careful putting this too high, and according to the above KB it may be better to redesign the report. 

With that in mind you can adjust the following:

- stop cabi probe and wasp probe on cabi robot
- find this file on cabi server 

probes\service\wasp\webapps\cabijs\WEB-INF\classes\jasperreports.properties

- Before making changes, take a backup of this file just in case

- in this file locate the following:

#limit the crosstab bucket/measure count to prevent out of memory errors
net.sf.jasperreports.crosstab.bucket.measure.limit=100000

This can be set to a higher value - but the higher you set this limit the longer it may take to return reports and the more memory will be demanded by the wasp and or cabi probes.

As an example, one customer set this value to 20000000 (twenty million) and found it necessary to configure the cabi probe with 16gb of RAM to avoid running out of memory when generating large reports.

After making this change, monitor the wasp, cabi, and jasperserver logs for OutOfMemory exceptions while running the same reports.  If such exceptions occur you will need to increase the memory on the probes.