Jump to content
We've recently updated our Privacy Statement, available here ×
  • Execution of reports on Dashboard (serial vs parallel)


    stasp
    • Features: Dashboards Version: v6.3

    Reason for this short article

    When running a Dashboard with multiple reports it is not obvious how the reports on this Dashboard are executed. The fact that report queries are printed in the the output log one after another may add to the confusion and lead to an assumption that reports are executed one after another, one report at a time. This has been a concern for some of our users. The purpose of this post is to shed some light on how Dashboard reports run

    Explanation

    Dashboards in JasperReports Server (JRS) version 6.3 make use of Visualize.js API. If you are using browser tools (common shortcut to open is the F12 key) you can watch the http requests being made by the browser. Visualize.js largely makes use of the REST API, so you should see request for REST 'reportexecutions' service.
     
    So the server receives these RESTful http requests in order that the browser sends them, and it queues them up just like every other inbound http request it receives.
     
    The JRS webapp is servlet-based, so the application server (tomcat, jboss, websphere) has some threads which process each inbound request and responds when finished (http response flushed back from JRS layers through application server layers through any webserver or proxy to browser).
     
    If you ran 6 reports via the web UI in rapid succession the same thing would occur if you ran your 6-dashlet dashboard - appserver worker threads would do session and app-level work, call JR library code, grab DB connections from the DB connection pool, start filling and exporting to respond back. If, for example, you had a single-threaded appserver and just a single connection in the connection pool, then DB queries would be executed in serial. But in practice this isn't the case, you probably have bunches of appserver threads and a minimum of 20 db connections in the pool, which means the report execution requests are generally managed by the app server  in parallel.
     
     
    ----------------------------

    Ref. case #01450315


    User Feedback

    Recommended Comments

    There are no comments to display.



    Guest
    This is now closed for further comments

×
×
  • Create New...