## Appendix 1: Properties in the server.properties file

This appendix provides a list of properties in the server.properties file which is created in `<install_root>\bin` when the first time JReport Enterpriser Server is started, and the detailed information about these properties.

Property Name | Default Value (Range) | Description
--- | --- | ---
CLUSTER
cluster.admin.rmi.host | - | Specifies the RMI IP address or host name of the admin server.
cluster.admin.rmi.port | 1129 (1 ~ 65535) | Specifies the RMI port that the admin server uses.
cluster.enable_notify_server_down | false | Specifies whether to notify somebody via e-mail when a server in the cluster is down. The e-mail address is specified by the cluster.notify_server_down_address property.
cluster.heart_beat.interval | 30 | Specifies the time interval (in seconds) between attempts for a non-admin server to send a heart beat to the admin server in order to check whether the admin server is down. Repeated until the maximum retry limit has been reached. The value of this property should not be less than 0.
cluster.heart_beat.max_retries | 3 | Specifies the maximum number of re-tries for a non-admin server to send a heart beat to the admin server in order to check whether the admin server is down. The value of this property should not be less than 1.
cluster.notify_server_down_address | - | Specifies the e-mail addresses of the people to whom you want to send a notification e-mail when a server in the cluster is down. This property takes effect only when the cluster.enable_notify_server_down property holds a true value.
cluster.send_concurrent_reports | true | Specifies whether to send the number of concurrently running report sets on member servers to the admin server. More Info
cluster.server.admin | true | Specifies whether the current server is the admin server.
cluster.server.backup | false | Specifies whether the current server is a backup server.
cluster.update_concurrent_reports_immediately | false | Specifies whether to send the number of concurrently running report sets on a member server to the admin server immediately when the number changes. More Info
ENGINE
engine.default_encoding | - | In JReport Engine, this property is used by parameters and export formats (HTML, PDF, RTF, XLS, and e-mail). The property value is used to encode the displaying value of parameters and report data when exporting to these formats.
engine.priority | 2 (0 ~ 4) | Specifies the CPU utilization priority for the engine. The performance of JReport Enterprise Server is influenced by the usage of the CPU that the JReport engine can occupy. A larger share of CPU usage will speed up performance. To tune JReport Enterprise Server to the best performance, you can modify this option to enable the engine to share a larger part of CPU usage when it is running.
engine.single_thread | true | Specifies that there should be only one thread when the engine is running.
engine.sort.buffer_size | -1 | Specifies the buffer size (MB) used in the RAM for each report when sorting on DHTML reports. The minimal size required by JReport is 4 MB. The default value -1 means that the buffer size is controlled by the system automatically.
FTPS
ftps.keymanager.algorithm | - | Specifies FTPS key manager algorithm.
ftps.keystore.file | - | Specifies FTPS key store file.
ftps.keystore.password | - | Specifies FTPS key store password.
ftps.keystore.type | - | Specifies FTPS key store type.
ftps.trustmanager.algorithm | - | Specifies FTPS trust manager algorithm.
ftps.truststore.file | - | Specifies FTPS trust store file.
ftps.truststore.password | - | Specifies FTPS trust store password.
ftps.truststore.type | - | Specifies FTPS trust store type.
HTTPSERVER
httpserver.admin.port | 8889 (1 ~ 65535) | A port used to configure and administer the server remotely. This port is where the servlet for remote administration (jet.server.servlets.RcServlet) listens.
httpserver.backlog | 50 | The maximum number of Client sockets that can be queued when waiting to be accepted by the JReport Enterprise Server socket.
httpserver.check_jdk13_for_jasper | true | In the environment of JDK 1.3.x, the embedded Jasper of JReport Enterprise Server cannot re-compile JSP files when they are modified. Setting this property to true will resolve this problem.
httpserver.host.all | true | Specifies whether JReport Enterprise Server listens on all network addresses. For Linux environment, even if httpserver.host.all=true, at most one IP address can be gotten because of JDK's own reason. In order to listen on more than one IP address on Linux, you need set httpserver.host.all=false, and then set the desired IP addresses separated by a blank as the value of httpserver.host.name, for example: `httpserver.host.all=false httpserver.host.name=IP1 IP2 IP3`
httpserver.host.name | * | If httpserver.host.all=false, use this property to specify IP addresses that JReport Enterprise Server listens on. By default this property does not appear in the server.properties file and you need add it manually if you want to use it.
httpserver.max.connections | 1000 (1 ~ 2147483647) | The maximum number of connections that a standalone server can accept. New requests sent to a standalone server will be refused when the amount of connections that the server is processing exceeds this number.
httpserver.max.handlers | 50 (1 ~ 2147483647) | The maximum number of user handlers that JReport Enterprise Server can hold. JReport Enterprise Server can respond to requests from the client-side simultaneously. The number of the executed requests is in inverse proportion to the speed of the response. The more requests that are executed, the slower the speed. To improve the running speed, you can set the maximum number of user handlers to a comparatively small number.
httpserver.name | JREntServer/1.1 | Specifies the HTTP Server name.
httpserver.port | 8888 (1 ~ 65535) | Specifies the TCP port on which JReport Enterprise Server listens when the server is started. This port can be an integer between 1 and 65535. However, numbers less than 1024 are usually reserved by system, so numbers larger than 1024 are recommended.
httpserver.redirect.propfile | <install_root>\bin\redirect.properties | Specifies the path and file name of the redirect property file.
httpserver.servlet.admin.propfile | <install_root>\bin \admin.properties | Specifies the path and file name of the RcServlet property file.
httpserver.servlet.propfile | <install_root>\bin \servlet.properties | Specifies the path and file name of the servlet property file. The core of JReport Enterprise Server is jet.server.servlets.JRServlet, which implements the interface of javax.servlet.http.HttpServlet. You can install jet.server.servlet.JRServlet to any web server that supports servlets. This will turn the web server into a JReport Enterprise Server.
httpserver.shutdown.timeout | 0 | Specifies a shut-down time limit for the HTTP Server, in seconds. When the time exceeds the specified duration when shutting down the HTTP Server, it will be forced to terminate. The HTTP Server will never be forced to terminate if it is set to 0.
httpserver.ssl.admin.port | 6889 | The port used for visiting JReport Administration page via HTTPS schema. It should be different from the Administration Port for HTTP schema.
httpserver.ssl.algorithm | sunx509 | The X509 algorithm to use. This defaults to the Sun implementation (SunX509). For IBM JVMs you should use IbmX509.
httpserver.ssl.enable | false | If true, you can use HTTPS schema to visit JReport Enterprise Server UI in the standalone mode.
httpserver.ssl.keystore | <install_root>\bin\keystore | The location of the keystore file.
httpserver.ssl.keystore.password | jinfonet | The password used to protect the integrity of the keystore.
httpserver.ssl.keystore.type | JKS | The type of keystore to be instantiated. The valid values are JKS and PKCS12.
httpserver.ssl.port | 6888 | The port used for visiting JReport Console page via HTTPS schema. It should be different from the Port for HTTP schema.
httpserver.ssl.protocol | SSL | The encryption/decryption protocol to be used on the socket. The valid values are SSL and TLS.
httpserver.timeout | 500 (1 ~ 2147483647) | Specifies the maximum number of milliseconds that a request from a client-side can be blocked before being refused by the server. If there are still no connection handlers free after the maximum number of milliseconds has been reached, the request will be refused back to the client.
httpserver.use_old_forward_method | false | Specifies whether to use old implementation for javax.servlet.RequestDispatcher.forward() or use new implementation.
JSP
jsp.webapp.sendfile | /servlet/sendfile | Specifies the sendfile servlet mapping path.
LOADBALANCE
loadbalance | true | Specifies whether to enable the load-balancing feature.
loadbalance.type | 0 (0 ~ 3) | Specifies the load-balance type. More Info
LOG
log.config.filename | <install_root>\bin\LogConfig.properties | Specifies the location (full absolute-path file name) of the logging configuration file.
log.config.update | false | Specifies to enable auto-update of logging configuration changes (by manually modifying the configuration file) at runtime. If set to true, any changes to the logging configuration file at runtime will automatically take effect after the specified update interval. Otherwise, any changes to the configuration file will not take effect until you restart JReport Enterprise Server.
log.config.update.interval | 60000 | Specifies the interval value (in milliseconds) for when logging configuration changes will be auto-updated. This property will only function after the log.config.update property has been set to true.
MONITOR
monitor.cluster.refresh.interval | 10000 (1 ~ 9223372036854775807) | Specifies the time interval (in milliseconds) for when the monitor statistics of the clustered server are updated.
monitor.interval | 60 (1 ~ 9223372036854775807) | Specifies the time interval (in milliseconds) for the monitor thread.
monitor.maxminute.savereport | 2 (1 ~ 2147483647) | Specifies the maximum time limit (in minutes) for a report set status to be shown on the Finished tab.
monitor.maxnumber.savereport | 20 | Specifies the maximum number of completed report sets that can be kept in the cache.
monitor.number.savereport | 2 (1 ~ 2147483647) | Specifies the maximum completed report set count that is to be shown on the Finished tab.
monitor.overtime.running | 30000 (1 ~ 9223372036854775807) | Specifies the time limit (in milliseconds) of over-time running report sets. For example, a report set will be marked as a large report set when its running time exceeds the time limit.
monitor.refresh.interval | 10000 (1 ~ 9223372036854775807) | Specifies the time interval (in milliseconds) for when the monitor statistics of the server are updated.
monitor.server.web.url | http://localhost:8848/monitor/index.jsp | Specifies JReport Server Monitor URL, where the Monitor link on the system toolbar of the JReport Administration page (port 8889 by default) links to.
PERFORMANCE
performance.cacheallimg | true | Specifies to cache all the images that are used in reports.
performance.cachecat | true | Specifies to cache catalogs in the memory. More Info
performance.cacheimg | true | Specifies to enable the image cache function.
performance.cacherpt | true | Specifies to cache report sets in the memory. More Info
performance.catpoolsize | 10 | Specifies the maximum number of catalogs that can be cached by the server. No further catalogs can be cached if the number of cached catalogs reaches this number.
performance.commit.interval | 60 | Specifies the time interval for when JReport Enterprise Server will commit the changes in the Version list, Schedule list or Completed list. More Info
performance.commit.thread | false | Specifies to commit every change in the Version list, Schedule list or Completed list. More Info
performance.compressio | false | Specifies whether or not to compress the temporary data generated during runtime before it is swapped to disk. By compressing the swap files, the I/O efforts in certain circumstance may be considerably reduced so that the overall performance will be improved. Note: Compressing swap files will increase CPU usage because it uses a compression algorithm to shrink data. If your system already has high CPU usage, enabling this option will increase CPU usage, depending on different circumstances, and such impact may overcome the performance gain that comes from reducing I/O time.
performance.exe_gc | false | Specifies whether to control garbage collection by JReport.
performance.html.pipeline | false | Specifies to enable the HTML pipeline function. More Info
performance.imgpoolsize | 10 | Specifies the maximum size for caching images, in MBs.
performance.loadfont | false | Specifies to pre-load fonts when JReport Enterprise Server starts.
performance.max.reports | 0 | Specifies the maximum number of concurrent reports in the running queue. This number must be less than or equal to the number permitted by the license. Additional reports that are requested will be queued until space in the running queue is available. More Info
performance.preloadcatcls | true | Specifies to load catalog related Java classes when JReport Enterprise Server starts.
performance.preloadedcats | - | Specifies the catalogs to be loaded when JReport Enterprise Server starts.
performance.preloadedrpts | - | Specifies the report sets that are to be loaded when JReport Enterprise Server starts.
performance.preloadenginecls | true | Specifies to load engine related Java classes when JReport Enterprise Server starts.
performance.preloadrptcls | true | Specifies to load report sets related Java classes when JReport Enterprise Server starts.
performance.rptpoolsize | 10 | Specifies the maximum number of report sets that can be cached by the server. No further report sets can be cached if the number of cached report sets reaches this number. More Info
performance.showimgdetail | true | Specifies whether to display the detailed status of the cached images.
QUEUE
queue.accelerated | 10,9 | Specifies the priority levels of the waiting tasks that will be promoted to accelerated tasks. Accelerated tasks have higher priority than other tasks and run in a separate accelerated queue. Set one or more priority levels separated by comma as the property value. The priority levels are from 1 to 10 in an ascending order with 10 having the highest priority and by default priority 9 and 10 tasks would be processed in the accelerated queue, not the normal running queue.
queue.accelerated.size | 0 | Specifies the maximum number of accelerated tasks in the accelerated queue.
queue.policy | 0 | Specifies the way of controlling queue. The valid property values are as follows: 0 - Run tasks according to the time, following the rule of "First in, First out". 1 - Run tasks according to their priority levels. 2 - Increase the priority level of waiting tasks each time after a specified period. You need to set the property queue.policy.waitingtime in the server.properties file. 3 - Increase the priority level of waiting tasks each time after the specified number of tasks are completed. You need to set the property queue.policy.readjust in the server.properties file.
queue.policy.readjust | 4 | You need to set this property when queue.policy=3. The property controls readjusting upward the priority of waiting tasks each time after the specified number of tasks are completed. The property value is measured by the completed tasks.
queue.policy.waitingtime | 1200 | You need to set this property when queue.policy=2. The property controls readjusting upward the priority of waiting tasks each time after a specified time period. The property value is measured in seconds.
RESOURCE
resource.default_public_catalog | /SampleReports/SampleReports.cat | Specifies the default public catalog that will be shown automatically when JReport Enterprise Server is accessed using a web browser.
resource.result.life | 86400 | Specifies the time length for the temporary report set result files to be kept after they have been generated. By default it is 86400 seconds (24 hours). 300 is the minimum number. If time is out, all the files in the temp folder will be deleted except the files which are being used. The clock count returns to 0 and it counts periodically.
resource.root | - | Specifies the report set root directory of the report resources that are shared among the clustered servers.
resource.share.hist.dir | - | Specifies the history directory that is shared among the clustered servers. JReport Enterprise Server uses an individual folder, history, to store all parameter information and versioning result files.
resource.share.properties.dir | - | Specifies the properties directory that is shared among the clustered servers. This is a property which redirects the \properties folder in a JReport Enterprise Server cluster environment. The admin and backup servers use this property to redirect their properties folders to the same location.
resource.share.realm.dir | - | Specifies the realm directory that is shared among the clustered servers. JReport Enterprise Server uses an individual folder, realm, to store security information, such as ACLs, groups, realms, and users. Realms and users are organized into a folder tree structure.
resource.share.temp.dir | - | Specifies the temporary directory that is shared among the clustered servers. JReport Enterprise Server uses an individual folder, temp, to store temporary files generated during its working process, such as the result files generated when you run a report set. All the files in the temp folder will be deleted when JReport Enterprise Server restarts.
resource.undefine.free | true | Specifies that any resource nodes not bound with an ACL are accessible. You need add the property manually.
SERVER
server.auto_recover_task.interval | 30 | Specifies the retry interval in seconds when trying to recover a task.
server.auto_recover_task.max_times | 0 | Specifies the maximum retry times when trying to recover a task.
server.auto_recover_task.recreate_all_results | false | Specifies whether to re-create all the result files when recovering a task.
server.completed.max_count | 3000 (0 ~ 2147483647) | Specifies the maximum number of completed records that will be kept the Completed table. Set the value to zero if you do not want to limit the record count.
server.completed.write_in_queue | false | Before a scheduled task finishes, it will write a record into the completed task table. If there are a number of scheduled tasks running concurrently, it is possible that many tasks try to write records into the completed task table at the same time. It will become a bottleneck because the operation is synchronized, and it may block new tasks. To avoid this case, set server.completed.write_in_queue=true, all operations of writing into the completed task table will be performed in a separate thread one by one, and the scheduled tasks need not wait for the operation results to return. By default this property does not appear in the server.properties file. You should add it into the server.properties file manually.
server.connection.keepalive | true | Specifies to keep the connection alive after it has connected to JReport Enterprise Server. Setting this property to false will disconnect the connection once it has received the response. That is, Internet Explorer or Netscape will not hold the connection open.
server.dynamic.class.dir | <install_root>\dynamicclasses | Specifies a folder location on the server machine to hold all the UDS jar files, so that you can specify to load the classes from that folder.
server.enable.pagelevelsecurity | true | Specifies the mode when scheduling a report with page-level security to publish it to the HTML and DHTML formats: true - The scheduled result includes all pages. Then when end users view the result, they will be displayed the pages they are privileged to see according to the page-level security setting in the report. false - The scheduled result only contains the pages that the user who did the scheduling is allowed to see. For details, see Scheduling to HTML/DHTML.
server.enableDynamicResource | false | Specifies whether to enable getting server resources from their real paths. However, when installing JReport Enterprise Server, if you choose Custom Installation for Standalone Server and with the Enable Resources from Real Paths option checked, the default value of this property will be true.
server.enableMultipleLogin | true | Specifies that multiple sessions created by one user, can exist simultaneously. If the value is true, a user can log onto JReport Enterprise Server repeatedly without having to terminate any of his/her former sessions until the number of sessions reaches the number permitted by the license. If the value is false, only the newly created session is active, and all the other former sessions created by the same user will be terminated by JReport Enterprise Server automatically.
server.font.path | <install_root>\font | Specifies a font location for server resources. You need add the property manually.
server.get_remote_host | false | Specifies that JReport Enterprise Server will automatically record and transmit the IP address of a client who has delivered a request to the engine.
server.http.output_encoding | - | Specifies the encoding of JReport internal servlets. By default, jrservlet uses the JVM's encoding.
server.http.param_values.delimiter | semicolon (;)+ | Specifies a delimiter to separate values when a parameter of a report set contains multiple values. Valid delimiters include blank space (&nbsp;), comma (,), semicolon (;), quotes ("), colon (:), and braces ({}). By default, this property does not appear in the server.properties file. To use a delimiter that is different from the default, add this property to the server.properties file, and then set a value to it.
server.invalidate_httpsession_when_logout | true | Specifies whether to invalidate the session when the user logs out.
server.language | en | Specifies the language the server uses.
server.mail.send_size | 2000 | Specifies the maximum size in KB of the attachments in one e-mail sent by the server.
server.ondemandlist.clearrecord_lagging_time | 300 | Specifies the lagging time in seconds after when JReport Enterprise Server clears up the UID's Background Tasks list after the last user who logged in with the UID logs out.
server.ondemandlist.user_max_records | 100 | Specifies the maximum number of records to display in the user's Background Tasks list. The oldest records will be removed when records exceed the specified number. When it is set to 0, unlimited records will be allowed in the user's Background Tasks list.
server.permission.algorithm | 0 (0 and 1) | Specifies an algorithm for calculating a principle's permission. If the value is set to 0, the permission accumulation algorithm will be used. If it is set to 1, the user permission replacement algorithm will be used. More Info
server.profiling.enable | false | Specifies whether to enable the profiling system. If the profiling system is enabled, JReport Enterprise Server will collect and store report set running information to the profiling database. You can then view profiling report sets from JReport Server Monitor.
server.realm.active | defaultRealm | Specifies the realm that takes effect when the server starts up. The specified realm should exist, otherwise the server will use an existing realm as active realm. The server will then record a warning message in the log file, and set the selected active realm by this property in the server.properties file.
server.resource.cleanup_user_folder | true | Specifies whether to remove a user's My Reports node (/USERFOLDERPATH/UserID) from the server resource tree when the user is deleted from the security system.
server.resource.enable_linked_catalog | false | When the property is set to true, it enables to pre-define a linked catalog in the server level for the My Reports and Public Reports folders to inherit. If the property is set to false as default, the My Reports and the Public Reports folders cannot inherit linked catalog.
server.restore.task | false | Specifies to re-run all interrupted tasks upon restarting the server, in the event of the server crashing.
server.rmi.auth_file | - | This property enables the server.properties file to locate the rmi.auth file by specifying a path of it, for example, `C:\JReport\Server\bin\rmi.auth`. By default, this property does not appear in the server.properties file. In order to enable the server.properties file to locate the rmi.auth file, add this property to the server.properties file, and then specify a directory as its value.
server.rmi.host | localhost IP address | Specifies the RMI IP address or host name of the local server.
server.rmi.port | 1129 (1 ~ 65535) | Specifies the RMI port that the local server uses.
server.rmiadminservice.enable | false | Specifies whether the JReport Enterprise Server can be administered from a remote client via RMI APIs.
server.rmimonitor.enable | true | Specifies whether the JReport Enterprise Server is monitorable by a JReport Server Monitor.
server.rmiserver.enable | false | Specifies whether to enable the remote method invocation server.
server.rmiserver.fixed_port | 0 | Specifies a port for exporting server remote objects. If the value is 0, an anonymous port will be used. When JReport Enterprise Server resides behind a firewall, the only way to pass through the firewall in order to obtain the remote objects from the client side is to use an opened port while the remote method invocation server is enabled. This property allows you to specify a fixed port that you can open in the firewall setting.
server.rolebased.authorization | false | Specifies whether to activate the role based security in replace of the default applied security of setting permissions for users, groups and roles. In the role based security, permissions are defined on roles only, and users and groups are mapped to roles.
server.security | true | Specifies whether to enable security checking on remote requests. When it is set to false, responses will be made without any security checking. This does not apply to Remote Configuration and Administration.
server.security.group.cache.size | 50 | Specifies the number of group objects that can be stored in the security cache. The value should be an int.
server.security.protection.cache.size | 100 | Specifies the number of ACL (Access Control List) objects that can be stored in the security cache. The value should be an int.
server.security.role.cache.size | 50 | Specifies the number of role objects that can be stored in the security cache. The value should be an int.
server.security.user.cache.size | 1000 | Specifies the number of user objects that can be stored in the security cache. The value should be an int.
server.session.timeout | 1800000 | Specifies a timeout limit for when the client cannot send requests to JReport Enterprise Server. The server will log the client out after timeout. The default session timeout is 1800000 seconds, which is 500 hours.
server.temp.max_file_per_folder | 500 | JReport Enterprise Server will create sub folders in the `<install_root>\temp` directory to put temporary files which are for holding bursting data only. This property controls the maximum number of temporary files in one folder. This property is not pre-defined in the server.properties file. You need to add it manually.
server.ui.set_permission.group | false | Specifies whether to display group permissions in the permission setting UI for the server resource tree node and Version Properties, and the Scheduling to Version and Advanced Run dialogs.
server.ui.set_permission.role | true | Specifies whether to display role permissions in the permission setting UI for the server resource tree node and Version Properties, and the Scheduling to Version and Advanced Run dialogs.
server.ui.set_permission.user | false | Specifies whether to display user permissions in the permission setting UI for the server resource tree node and Version Properties, and the Scheduling to Version and Advanced Run dialogs.
server.url.help | /help/server/en/userguide/index.htm | Specifies the help documentation URL the Help button links to. This button is located on the upper-right corner of the JReport Console page and JReport Administration page.
server.url.website | http://www.jinfonet.com | Specifies the website URL the Jinfonet Home button links to. This button is located on the upper-right corner of the JReport Console page.
server.version.from.temp | false | Specifies to enable the "Publish to Version System" option when previewing a report set result. More Info
server.version.max_amount_per_subfolder | 3000 | Specifies the maximum amount of subfolders in each subfolder in the history folder. More Info
server.version.retain.paramfile | false | Specifies to retain the parameter file (if there is one) when an archive version is removed from the version table. If set to true, the parameter file will be kept in the history folder.
server.version.show.paramcontents | false | Specifies to show the parameter contents in the version table. If set to true, a new column named Parameter Contents will be added to the version table.
server.version.subfolder_amount | 100 | Specifies the number of the server history folders.
TASK
task.duration.check_cycle | 30 | Specifies task duration check frequency in seconds. By default, JReport Enterprise Server checks task duration every 30 seconds. Note that the value must be an integer greater than 0.
task.duration.enable | false | Specifies whether to enable setting a time duration for a task and asking JReport Enterprise Server to cancel the task or to notify you or someone else of the task status via e-mail if the task has not yet finished running when the task duration is up. If the value is set to true, the Duration tab will be available in the Advanced Run and Schedule dialogs.
task.initial.priority.ondemand | 7 | Specifies the default priority level for the direct or advanced running tasks.
task.initial.priority.schedule | 5 | Specifies the default priority level for the scheduled running tasks.
WEB
web.design_servlet_path | /webreporting | Specifies the web design servlet mapping path.
web.dhtml_jsp_path | /dhtmljsp | Specifies the mapping path of the DHTML JSP files.
web.dhtml_servlet_entry_path | /jrdhtml | Specifies the DHTML servlet mapping path for loading report sets.
web.dhtml_servlet_path | /dhtml | Specifies the DHTML servlet mapping path.
web.force_excel_download_dialog | false | If true, a File Download dialog will be displayed asking to either open the report set or save the report set result file after activating a direct running task or submitting an advanced running task as the Excel format. If false, the report set is opened directly.
web.force_pdf_download_dialog | false | If true, a File Download dialog will be displayed asking to either open the report set or save the report set result file after activating a direct running task or submitting an advanced running task as the PDF format. If false, the report set is opened directly.
web.force_ps_download_dialog | false | If true, a File Download dialog will be displayed asking to either open the report set or save the report set result file after activating a direct running task or submitting an advanced running task as the PostScript format. If false, the report set is opened directly.
web.force_rtf_download_dialog | false | If true, a File Download dialog will be displayed asking to either open the report set or save the report set result file after activating a direct running task or submitting an advanced running task as the RTF format. If false, the report set is opened directly.
web.force_text_download_dialog | false | If true, a File Download dialog will be displayed asking to either open the report set or save the report set result file after activating a direct running task or submitting an advanced running task as the Text format. If false, the report set is opened directly.
web.force_xml_download_dialog | false | If true, a File Download dialog will be displayed asking to either open the report set or save the report set result file after activating a direct running task or submitting an advanced running task as the XML format. If false, the report set is opened directly.
web.help_servlet_path | /help | Specifies the DHTML help servlet mapping path.
web.ie.login.use_new_realm_name | false | Internet Explorer remembers user name and password automatically, which allows you to log in without having to input user name and password. When this property is set to true, JReport Enterprise Server requires a new realm name, then the user name and password that Internet Explorer remembers cannot log in.
web.jreport_servlet_path | /jrserver | Specifies the JReport servlet mapping path.
web.monitor.link.enable | true | Specifies to enable and display the Monitor link on the system toolbar of the JReport Administration page. The link is an entry to JReport Server Monitor UI in JReport Enterprise Server.
web.page.option.convert.encoding | true | Specifies whether to display the Enable Converting Encoding option in the Advanced Run and Schedule dialogs.
web.page.option.db | true | Specifies whether to display the report set's DB setting options in the Advanced Run and Schedule dialogs.
web.page.option.encoding | true | Specifies whether to support encoding in Advanced Run mode.
web.page.option.rootdir_of_folder_selector | - | Specifies a valid folder path in which folders can be browsed through a JSP folder selector when admin users publish resources locally from a client machine. If the value is null, the whole file system can be browsed. In the server publishing mechanism, only admin users are able to publish resources locally from a client machine, and can browse the server machine's file system by folder selector.
web.page.option.show_catalog | false | Specifies to display catalogs on the JReport Console page (port 8888 by default).
web.page.option.show_name_with_postfix | true | Specifies to show the file name extensions of the catalog and report set files.
web.page.option.stylegroup | true | Specifies to display the Enable Style Group option in the Advanced Run and Schedule dialogs.
web.page.option.tasklistener | true | Specifies to support task listener.
web.page.option.to_applet | true | Specifies to support exporting to "Applet" in Advanced Run mode.
web.page.option.to_dhtml | true | Specifies to support exporting to "DHTML" in Advanced Run mode.
web.page.option.to_excel | true | Specifies to support exporting to "Excel" in Advanced Run mode.
web.page.option.to_html | true | Specifies to support exporting to "HTML" in Advanced Run mode.
web.page.option.to_pdf | true | Specifies to support exporting to "PDF" in Advanced Run mode.
web.page.option.to_ps | true | Specifies to support exporting to "PostScript" in Advanced Run mode.
web.page.option.to_rtf | true | Specifies to support exporting to "Rich Text Format" in Advanced Run mode.
web.page.option.to_text | true | Specifies to support exporting to "Text" in Advanced Run mode.
web.page.option.to_xml | true | Specifies to support exporting to "XML" in Advanced Run mode.
web.page.option.use_relative_app_url | false | Specifies whether the URLs contained in the HTML contents returned by JReport Enterprise Server uses relative paths. When the value of this property is set to true, it will avoid problems caused by you having a proxy server between JReport Enterprise Server and their clients.
web.skin.dir | /skin | There is a folder named "skin" in `<install_root>\public_html`. It contains all files concerning DHTML skin. In integration environment, this folder is relative with context path, for example, after deploying jreport.war to an application server this value will be changed to /jreport/skin automatically.
web.timeouts.report_wait | 170 | Specifies the try-view time limit (in seconds). Any running report set (submitted using the Run or Advanced Run command) will be considered as a large report set and put into the Background Tasks list after the time limit.
web.version.mark_unviewed | false | Specifies whether to mark the unviewed version results in red color. When it is false as default, JReport Enterprise Server will not show color difference between the viewed and unviewed version results.

#### cluster.send_concurrent_reports and cluster.update_concurrent_reports_immediately

These two properties, cluster.send_concurrent_reports and cluster.update_concurrent_reports_immediately, are used together to determine whether or not to and how often JReport Enterprise Server sends the number of concurrently running report sets on it to the admin server in a cluster.

If the property cluster.send_concurrent_reports is set to true, all clustered servers can send the number of concurrently running report sets on them to the admin server. Each clustered server can have its own way to send the number. The property can be set only once on the admin server, since it applies to all the other servers in the cluster.

If the property cluster.update_concurrent_reports_immediately is set to true, the clustered server will send the number of concurrently running report sets to the admin server immediately after the number changes. If set to false, a thread on each clustered server will check whether this number has changed every 500 milliseconds. If changed, the updated number will be sent to the admin server. Otherwise it will not be sent. This property can be set to true when you have enough network bandwidth. It must be set on every clustered server individually.

#### loadbalance.type

Specifies the load-balance type. Can be one of the following:

Option | Description
--- | ---
0 | Uses Least Current Report Sets Algorithm to allocate tasks.
1 | Uses Round Robin Algorithm to allocate tasks.
2 | Uses Least Weighted Current Report Sets Algorithm to allocate tasks.
3 | Randomly allocates tasks.

See Built-in load balancing algorithm for details about the four load balancing types.

#### performance.cachecat and performance.cacherpt

The process for viewing report sets is a combination of both loading report sets from disk and generating report set files. It is obvious that skipping either one of these two steps will shorten the elapsed time. JReport Enterprise Server enables you to cache report sets and catalogs in memory, so that you do not have to load them from disk, thereby improving performance.

#### performance.commit.thread and performance.commit.interval

When the value of the performance.commit.thread property is false, JReport Enterprise Server will commit every change in the Version list, Schedule list and Completed list immediately. For example, upon deleting a scheduled task in the Schedule list, JReport Enterprise Server will commit the action and refresh the Schedule list. If this value is set to True, JReport Enterprise Server will only commit changes in the Version list, Schedule list or Completed list in the specified interval. By doing this, you can avoid frequently overwriting any related files in JReport Enterprise Server, thereby improving performance.

The performance.commit.interval property takes effect only when the performance.commit.thread property is set to True.

#### performance.max.reports

This property allows you to customize the maximum number of concurrent reports, including background run reports and scheduled reports.

It is meaningful to set this property if your license permits a large number of concurrent reports and you want a smaller maximum number of concurrent reports. Typically the JReport license allows an unlimited number of concurrent reports which can cause too many reports to complete for system resources at the same time.

The valid value range is between 0 and the maximum number of concurrent reports permitted by the license. Setting the property to a suitable value in accordance with your computer's usage will lead to marked improvement in performance. For example, if you have an unlimited license and you don't use queue control, the running speed may be comparatively slow. To achieve better performance, you can set performance.max.reports = 4, so that only four reports run at the same time, while the other reports wait in the queue until one of the four has finished.

By default the property value is 0, which means that the maximum number of concurrent reports depends on the license you have purchased. For example, if you have a 20-report license, it will be up to 20 reports that can be running concurrently. Additional report requests will be placed into a waiting queue.

#### performance.html.pipeline

To speed up report set delivery, JReport Enterprise Server delivers a single page of content at a time. The JReport Engine outputs the content of the result in an HTML file to the web browser as soon as a single page has finished processing, while the rest of the report set continues to be processed.

Note: Data such as Total Page Number displayed in one page is temporary, and is called dirty data. When data in a chart spans across one page, it is also displayed with dirty data. Dirty data is refreshed when the JReport Engine finishes processing.

#### performance.rptpoolsize

Each cached report set uses some heap memory. If the heap memory is used up, an OutOfMemoryException will be thrown.

Flag -ms/-Xms specifies the initial heap size and flag -mx/-Xmx specifies the maximum heap size. For example, -ms10m -mx512m means that the initial heap size is 10M and the maximum heap size is 512M.

You can refer to Java Virtual Machine documentation for more information.

#### server.permission.algorithm

Specifies an algorithm for calculating a role, user or group's permission. Two algorithms are supported:

- The permission accumulation algorithm
  The permission accumulation algorithm is applied if server.permission.algorithm=0.

  In this algorithm, a principal's permission is the sum of permissions assigned by the administrator and those inherited from its permission inherit tree. If the administrator did not set permissions or set no permission for the principle, the principle's permissions will be those inherited from the permission inherit tree.

- The user permission replacement algorithm
  The user permission replacement algorithm is applied if server.permission.algorithm=1.

  In this algorithm, if the administrator didn't set permissions for the principle, the principle's permission will be those inherited from its permission inherit tree. However, if the administrator did set permissions for the principle, the principle's permission will be those set by the administrator.

#### server.version.max_amount_per_subfolder

Specifies the maximum amount of subfolders in each subfolder in the history folder.

By default, JReport Enterprise Server creates 100 folders in the history folder (`<reporthome>\history`), and each of these folders can further contain 3000 subfolders (also set by this property). However, these subfolders cannot hold any further subfolders.

First, JReport Enterprise Server puts the history information, such as archive versions and parameter files, in folder 1. When the amount of subfolders in folder 1 has reached the maximum subfolder amount, it starts to put files in folder 2. When folder 2 is filled up, folder 3 will be used, then folder 4, folder 5, and so on, until all 100 folders have all been filled up.

When all 100 folders have been filled up with subfolders, JReport Enterprise Server will create another 100 folders, named 101 to 200, and continue storing the history information in these folders, starting with folder 101. When the second 100 folders are full, another 100 folders will be created, then a fourth 100 folders, a fifth 100 folders, and so on.

#### server.version.from.temp

Specifies to enable the Publish to Versioning System option when previewing a report set.

This property functions the same as the Enable "Publish to Versioning System" for Background Tasks View option in the Advanced tab of the JReport Administration > Configuration page.

If the value is set to true, a link Publish to Versioning System will be added to the upper-left corner of the report set preview page (preview a report set result using the Run command). Click the link to publish the result to version in the current format.