One CA PPM Jaspersoft Report keeps on loading in Development - works fine in Production

book

Article ID: 104188

calendar_today

Updated On:

Products

Clarity PPM SaaS Clarity PPM On Premise

Issue/Introduction



Why does this Report not run quickly in Development, when it does in Production CA PPM?

One custom CA PPM Jaspersoft "Advanced Report" does not run to completion in Development. 
Stays at "Cancel Loading Job . . .".
Even if left for two hours, it does not complete. There is no timeout message at 15 minutes or after.

On Production, this same report runs in less than one minute.

The Report was manually recreated from Production to Development. It was not moved over as part of a data migration or upgrade.

The Report has many sub-sections. The output is not big, but the report design is.

Examining the time that the Report queries take to run in the database, shows that it completes quickly at that level, in less than three minutes.

The Filters take less than a minute to load. It is only after using "Apply" that the delay occurs.

 

Environment

CA PPM 14.4 SaaS - Advanced Reporting (Jaspersoft).

Resolution

As it was already confirmed that the database level was processing the query quickly, a layer about this was reviewed next.

The "jasperserver.log" file contains information about how the report has run.
For a SAAS customer, this may be obtained from CA Support.

As an example, this error was found at the time  the report was run, and this enabled troubleshooting to root cause:

2018-07-04 16:19:55,536 ERROR AsyncJasperPrintAccessor,pool-6-thread-21335:321 [cppm99999_dev|MY_CA_PPM_SERVER] - Error during report execution
net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Error opening input stream from URL: repo:/ca_ppm/resources/images/circleGreen.

    at net.sf.jasperreports.repo.DefaultRepositoryService.getInputStream(DefaultRepositoryService.java:116)
    at net.sf.jasperreports.repo.InputStreamPersistenceService.load(InputStreamPersistenceService.java:45)
    at net.sf.jasperreports.repo.DefaultRepositoryService.getResource(DefaultRepositoryService.java:149)
    at net.sf.jasperreports.repo.RepositoryUtil.findInputStream(RepositoryUtil.java:190)
    at net.sf.jasperreports.repo.RepositoryUtil.getBytesFromLocation(RepositoryUtil.java:206)
    at net.sf.jasperreports.renderers.util.RendererUtil.getNonLazyRenderable(RendererUtil.java:163)
    at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:538)
    at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:482)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:381)
    at net.sf.jasperreports.engine.fill.JRFillFrame.evaluate(JRFillFrame.java:159)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:381)
    at net.sf.jasperreports.engine.fill.JRFillFrame.evaluate(JRFillFrame.java:159)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:381)
    at net.sf.jasperreports.engine.fill.JRFillFrame.evaluate(JRFillFrame.java:159)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:381)
    at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:500)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2028)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:749)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:256)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:115)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:586)
    at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:398)
    at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:732)
    at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59)
    at net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner.run(AbstractThreadSubreportRunner.java:221)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: net.sf.jasperreports.engine.JRException: Error opening input stream from URL: repo:/ca_ppm/resources/images/circleGreen.
    at net.sf.jasperreports.engine.util.JRLoader.getInputStream(JRLoader.java:343)
    at net.sf.jasperreports.repo.DefaultRepositoryService.getInputStream(DefaultRepositoryService.java:99)
    ... 27 more
Caused by: java.io.IOException: Repository file resource /ca_ppm/resources/images/circleGreen could not be loaded
    at com.jaspersoft.jasperserver.api.engine.jasperreports.util.repo.RepositoryConnection.getInputStream(RepositoryConnection.java:103)
    at java.net.URL.openStream(URL.java:1045)
    at net.sf.jasperreports.engine.util.JRLoader.getInputStream(JRLoader.java:339)
    ... 28 more

The manual recreation from Production to Development may not have accounted for everything.
The design of this report was examined (See also Jaspersoft Studio if needed) around this area.

Additional Information

CA PPM On-Premise customers have direct access to their own jasperserver.log for troubleshooting.

CA PPM On-Demand (SaaS) customers may obtain this log by running the Report to a Schedule, where there is an option to output the "stack trace."
This will then provide you with the same level of troubleshooting.

See How to view Jaspersoft Report logs (jasperserver.log) for CA PPM SaaS customers

<Please see attached file for image>

Jaspersoft Report log - jasperserver.log

 

Attachments

1558700051616000104188_sktwi1f5rjvs16jyi.png get_app