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

Document ID : KB000104188
Last Modified Date : 04/07/2018
Show Technical Document Details
Question:
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).
Answer:
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

Jaspersoft Report log - jasperserver.log