Jump to content
  • This documentation is an older version of JasperReports IO At-Scale 3.0 User Guide. View the latest documentation.

    Before you can build Docker images to deploy the modules, you must configure them to add the license file and specify a repository to store your reports. Optionally, you can also enable logging and set concurrent thread limits.

    Installing the License File

    You must purchase a license from TIBCO Jaspersoft to run JasperReports IO At-Scale. Once you recieve the license file, save a copy in the following folder:

    jrio-manager-docker/jrio/classes

    For more information about the license file, contact your TIBCO Jaspersoft support representative.

    Using the Standalone Repository

    The jrio-client module only contains a sample application with links to the reports. These reports are stored in the sample repositories. Each module (jrio-client, jrio-reporting, jrio-rest) can access the reports using their local file system.

    However, the sample application is not a high-performance repository and is deployed statically in the jrio-client pod. Jaspersoft recommends using a JasperReports Server repository, as described in the next section.

    To make your reports appear in the standalone repository of the sample application, add the files in the following folders:

    jrio-reporting-docker/jrio-repository/samples

    jrio-export-docker/jrio-repository/samples

    jrio-rest-docker/jrio-repository/samples

    The standalone repository is identical to the file-based repository in JasperReports IO Professional. For more information about its file structure, see the section "JasperReports IO Repository" in Chapter 2 of the JasperReports IO Professional User Guide.

    Connecting to a JasperReports Server Repository

    In a production environment, Jaspersoft recommends using JasperReports IO At-Scale with a JasperReports Server instance for maximum throughput and flexibility. In this case, users create and access reports in the JasperReports Server repository, and JRIO At-Scale becomes the scalable, high-performance reporting engine for the server.

    When connecting to JasperReports Server, you must specify a URL (IP address or hostname) that is accessible from inside the JasperReports IO At-Scale cluster. If you plan to use JasperReports Server on AWS, you can specify the static IP or loadbalancer with hostname that is attached to that server instance. Be aware that you should create your Virtual Private Cloud (VPC) ahead of time, as well as your JasperReports Server instance so that the IP address is already available for the next steps. For more information, see Deploying JasperReports Server.

    note-icon-ns.png.37cc8800c53c20607c22813f199bc6fc.png

    The repository URL is usually set in the Helm chart (values.yaml), as described in Configuring the Helm Chart. The Helm chart lets you update the repository URL dynamically because its value takes precedence. However, setting this value in the module configuration as described below provides a hardcoded default value.

    Optional:

    1. Specify the server URL in the following three modules configuration files:
    Files jrio-reporting-docker/jrio/applicationContext-jrs.xml
    jrio-export-docker/jrio/applicationContext-jrs.xml
    jrio-rest-docker/jrio/WEB-INF/applicationContext-jrs.xml
    Bean id="serverConfiguration"
    class="com.jaspersoft.jrio.common.repository.jrs.ServerConfiguration"
    Property serverURL
    Example <property name="serverURL" value="http://example.com:8080/jasperserver-pro"/>
    2. By default, JasperReports IO At-Scale includes the standalone repository in the jrio-export, jrio-rest, and jrio-reporting modules. The sample repository in each module is accessible. For more information, see Using a Local Repository. Deploying the JasperReports IO At-Scale with a sample repository in each module will not impact the performance. If you want to disable these file repositories, open each of the following files and comment out all of the listed beans:
    Files jrio-reporting-docker/jrio/applicationContext-repository.xml
    jrio-export-docker/jrio/applicationContext-repository.xml
    jrio-rest-docker/jrio/WEB-INF/applicationContext-repository.xml
    Beans

    com.jaspersoft.jrio.common.repository.FileSystemRepository
    com.jaspersoft.jrio.common.repository.FileSystemPersistenceServiceFactory

    Setting JasperReports Properties

    JasperReports properties are the configuration settings for the JasperReports Library that is the reporting engine for JasperReports IO At-Scale. They affect the reporting and exporting modules to determine many aspects of report generation and output.

    note-icon-ns.png.2e157b2edafbb8138c554f6bab77de8e.png

    JasperReports properties are usually set in the Helm chart (values.yaml), as described in Configuring the Helm Chart. The Helm chart lets you update the properties dynamically because its values takes precedence. However, setting this value in the module configuration as described below provides a hardcoded default value.

    Optional:

    To set JasperReports properties, add them to the following files:

    jrio-reporting module jrio-reporting-docker/jrio/classes/jasperreports.properties
    jrio-reporting-docker/jrio/classes/jasperreports_extension.properties
    jrio-export module jrio-export-docker/jrio/classes/jasperreports.properties
    jrio-export-docker/jrio/classes/jasperreports_extension.properties

    Configuring Logging

    By default, logging is enabled in the jrio-manager and jrio-reporting modules. Jaspersoft does not recommend changing the logging levels because the logs are used for troubleshooting. You can monitor these logs and use the Kubernetes Logging API to track events inside the cluster.

    The logging levels are defined as follows:

    Module jrio-manager
    File jrio-manager-docker/jrio/classes/log4j2.xml
    Loggers <Logger name="com.jaspersoft.jrio.manager.redis.RedisLicensePublisher" level="INFO"/>
    <Logger name="com.jaspersoft.jrio.manager.reporting.ReportingQueueManager"
    level="DEBUG"/>

     

    Module jrio-reporting
    File jrio-reporting-docker/jrio/classes/log4j2.xml
    Logger <Logger name="com.jaspersoft.jrio.reporting.execution.ReportExecutionPoll" level="DEBUG"/>

     

    Module jrio-rest
    File jrio-rest-dockerjrioWEB-INFclasseslog4j2.xml
    Logger None by default

    Setting Concurrent Threads

    The jrio-reporting and jrio-export modules are the workhorses of a JasperReports IO At-Scale cluster, usually deployed as multiple pods (module instances) to one or more nodes (physical or virtual machines). Each pod can also specify how many threads to run concurrently. This value depends on your performance needs, and it requires fine tuning based on service level requirements, user expectations, peak load, and CPUs available on each node.

    note-icon-ns.png.fb122c0dcbbd982c83418814500abe89.png

    The concurrent threads are usually set in the Helm chart (values.yaml), as described in Configuring the Helm Chart. The Helm chart lets you update the properties dynamically because its values takes precedence. However, setting threads in the module configuration as described below provides a hardcoded default value.

    To specify the default number of concurrent threads in each reporting pod:

    File jrio-reporting-docker/jrio/applicationContext-reporting.xml
    Bean reportExecutionPoll
    Property reportExecutionThreads

    To specify the default number of concurrent threads in each export module:

    File jrio-export-docker/jrio/applicationContext-export.xml
    Bean com.jaspersoft.jrio.export.executor.ReportExportExecutor
    Property exportThreads


    User Feedback

    Recommended Comments

    There are no comments to display.



    Guest
    This is now closed for further comments

×
×
  • Create New...