Jump to content
We've recently updated our Privacy Statement, available here ×
  • PhantomJS blocks TIBCO JasperReports® Server Web UI in 6.4.0 on Windows


    Teodor Danciu
    • Features: Exporters Product: JasperReports® Server

    It has been found that the PhantomJS process used to render HTML5 Charts and Charts Pro elements on the server side interferes with browser HTTP persistent connections when using Tomcat on Windows.

    The symptoms of the problem are the following: after an export of a report that has HTML5 Charts or Charts Pro elements is launched, browser requests made on previously established HTTP connections can block for up to a few minutes (that is the server does not return any data and the browser waits for a response until the request times out).  From a user perspective, the TIBCO JasperReports® Server UI appears unresponsive to actions like button and menu clicks or URL accesses.

    The problem occurs then the APR/native HTTP connector is used in Tomcat (which is the case by default in Windows).  It has been observed on a Windows 8.1 machine, and it might affect JasperReports® Server deployments on other Windows systems.  The source of the problem seems to be the fact that when the Tomcat Java process launches a child PhantomJS process, sockets created by the APR connector are inherited by the child process and made unusable for the Tomcat process.

    A workaround for the issue is to comment the net.sf.jasperreports.phantomjs.executable.path property in WEB-INF/lib/jasperreports.properties, and to use com.jaspersoft.jasperreports.highcharts.phantomjs.executable.path and com.jaspersoft.jasperreports.fusion.phantomjs.executable.path instead (as in JasperReports Server 6.3.0).  With PhantomJS configured as in 6.3.0, PhantomJS processes are still launched but the processes are generally short lived, therefore the chances of users encountering the problem are much lower.

    Another way to avoid the problem is to change the HTTP connector implementation in Tomcat to one of the Java IO implementations.  Deploying JasperReports Sever in a Tomcat instance that does not use the default HTTP connector implementation has not been thoroughly tested though and could have unwanted consequences.


    User Feedback

    Recommended Comments

    There are no comments to display.



    Guest
    This is now closed for further comments

×
×
  • Create New...