## 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 Server is started, and the detailed information about these properties.

Property Name | Default Value (Range) | Description
--- | --- | ---
CLUSTER
cluster.enable | true/false | Specifies whether or not to activate the cluster feature on the server. This property is available only when the license key you use for your JReport Server is cluster enabled, and the default value of the property varies as follows: If there already exists the server.properties file in `<install_root>\bin` but without the cluster.enable property, after you use the cluster enabled key to launch your JReport Server, the property will be added in server.properties and its default value is true. If there is no server.properties file in `<install_root>\bin`, after you use the cluster enabled key to launch your JReport Server, the default value for cluster.enable is false. When the cluster feature is activated on a clustered server, the server will call the remote methods to accomplish tasks, however by using RMI, the server's performance and reliability will be affected. Therefore, when you want a clustered server to work individually (not in a cluster environment), you can turn off the cluster feature on it by setting this property to false.
cluster.member.id | - | Specifies the member ID for the clustered server. Each clustered server should have an unique member ID. The value of this property should be an integer no less than 1.
cluster.name | jreport-cluster | Specifies the name of the cluster. When the property cluster.enabled is set to true, you must specify a unique cluster name for the servers that will join the cluster to build the cluster.
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 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 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 page reports in Page Report Studio. 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 Server socket.
httpserver.dashboard.port | 8887 | Specifies the port for accessing JDashboard page.
httpserver.host.all | true | Specifies whether JReport Server listens on all network addresses. For Linux environment, even if httpserver.host.all=true, at most one IP address can be retrieved 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 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 Server can hold. JReport 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 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 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 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.socket.timeout | 0 | Specifies Socket time line, in seconds. The default value 0 means infinite.
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.dashboard.port | 6887 | The port used for visiting JDashboard page via HTTPS schema. It should be different from the dashboard port for HTTP schema.
httpserver.ssl.enable | false | If true, you can use HTTPS schema to visit JReport Server UI in the standalone mode.
httpserver.ssl.keystore | <install_root>\bin\keystore\jrkeystore.jks | 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.
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 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 status to be shown on the Finished tab.
monitor.maxnumber.savereport | 20 | Specifies the maximum number of completed reports that can be kept in the cache.
monitor.number.savereport | 2 (1 ~ 2147483647) | Specifies the maximum completed report 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 reports. For example, a report will be marked as a large report 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 reports 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 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 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 Server starts.
performance.preloadedcats | - | Specifies the catalogs to be loaded when JReport Server starts.
performance.preloadedrpts | - | Specifies the reports that are to be loaded when JReport Server starts.
performance.preloadenginecls | true | Specifies to load engine related Java classes when JReport Server starts.
performance.preloadrptcls | true | Specifies to load reports related Java classes when JReport Server starts.
performance.rptpoolsize | 10 | Specifies the maximum number of reports that can be cached by the server. No further reports can be cached if the number of cached reports 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 when they are started, 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 Server is accessed using a web browser.
resource.result.life | 86400 | Specifies the time length for the temporary report 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 | %ReportHome%\jreports | Specifies the report root directories of the report resources. You should better set a different root directory for the report resources on each clustered server. This property is created in the server.properties file only when the server is started in a JReport cluster environment.
resource.share.hist.dir | %ReportHome%\history | Specifies the history directories of the report resources on the clustered servers. You should better set a different history folder to store the parameter information and versioning result files on each clustered server. This property is created in the server.properties file only when the server is started in a JReport cluster environment.
resource.share.properties.dir | %ReportHome%\properties | Specifies the properties directories of the report resources on the clustered servers. This is a property which redirects the <install_root>\properties folder in a JReport Server Cluster environment. Each clustered server should use this property to redirect the properties folder to its own location. This property is created in the server.properties file only when the server is started in a JReport cluster environment.
resource.share.realm.dir | %ReportHome%\realm | Specifies the realm directories of the report resources on the clustered servers. Each clustered server should use an individual realm folder to store its security information, such as ACLs, groups, realms, and users. Realms and users are organized into a folder tree structure. This property is created in the server.properties file only when the server is started in a JReport cluster environment.
resource.share.temp.dir | %ReportHome%\temp | Specifies the temporary directories of the report resources on the clustered servers. Each clustered server should use an individual temp folder to store its temporary files generated during its working process, such as the result files generated when you run a report. All the files in the temp folder will be deleted when JReport Server restarts. This property is created in the server.properties file only when the server is started in a JReport cluster environment.
resource.undefine.free | true | Specifies that any resource nodes not bound with an ACL are accessible. By default this property does not appear in the server.properties file and you need add it manually if you want to use it.
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.autocache.enabled | false | Specifies whether to enable to automatically cache report data. For more about cached report data, see Managing cached report data. In JReport cluster environment this property will be saved in the server's system database and is not created in the server.properties file.
server.autocache.expired.time | 0 | Specifies the period an automatic cached data result is kept. This property takes effect when `server.autocache.enabled=true` and `server.autocache.never.expire=false`. In JReport cluster environment this property will be saved in the server's system database and is not created in the server.properties file.
server.autocache.max.disk.usage | 512 | Specifies the maximum hard disk space for automatic cached data. The value should be between 4 MB and 1024*1024 MB. This property takes effect when `server.autocache.enabled=true`. In JReport cluster environment this property will be saved in the server's system database and is not created in the server.properties file.
server.autocache.never.expire | true | Specifies whether automatic cached data never expires. This property takes effect when `server.autocache.enabled=true`. In JReport cluster environment this property will be saved in the server's system database and is not created in the server.properties file.
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. In JReport cluster environment this property will be saved in the server's system database and is not created in the server.properties file.
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 and you need add it manually if you want to use it.
server.connection.keepalive | true | Specifies to keep the connection alive after it has connected to JReport Server. Setting this property to false will disconnect the connection once it has received the response. That is, Internet Explorer will not hold the connection open.
server.crd.memory.usage | 4 | Specifies the maximum memory usage when running a report using cached report data. The minimum value is 4 MB and can be increased up to 80% of the total Java maximum heap size (for example, -Xmx value in JRServer.bat). All cached report data being used to run reports will share the same memory space. For more about cached report data, see Managing cached report data. In JReport cluster environment this property will be saved in the server's system database and is not created in the server.properties file.
server.cube.maxmemory | 0.0 | Specifies the allowed maximum memory size in megabytes for all in-memory cubes. The total allocated memory for each cube cannot exceed this value. It does not take into consideration the actual memory used by the in-memory or if some of the cubes are swapped to disk. This value should not be larger than 80% of your Java Heap size. The value must be provided before the admin schedules a cube task for the first time. It can also be specified by the option Maximum Cube Memory Allowed in the Cube Configuration dialog.
server.cube_log.max_count | 3000 | Specifies the number of the records allowed to display on the JReport Administration page > Cube > Log tab.
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.cachedreportbursting | true | Specifies the mode when scheduling a report with cached report bursting to publish it to the HTML and Page Report Result formats: true - The scheduled result includes full data. Then when end users view the result, they will be displayed the data they are privileged to see according to the cached report bursting setting in the report. false - The scheduled result only contains the data that the user who did the scheduling is allowed to see. For details, see Scheduling to HTML/Page Report Result.
server.enableDynamicResource | false | Specifies whether to enable getting server resources from their real paths. However, when installing JReport 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 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 Server automatically.
server.font.path | <install_root>\font | Specifies a font location for server resources. By default this property does not appear in the server.properties file and you need add it manually if you want to use it.
server.get_remote_host | false | Specifies that JReport 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 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.http.secure_cookie | false | Specifies whether or not to set the "Secure" attribute to cookies. Generally only when using a secure protocol, such as HTTPS and SSL, can the browser send back the cookies with the "Secure" flag to the server. For non-secure protocols like HTTP, the secure cookies cannot be sent back. This prevents secure cookies from being observed by unauthorized parties. Therefore, when you are using a secure protocol, you can set this property to true; however if you are using a protocol like HTTP, you may need to keep this property false.
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 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 principal'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 Server will collect and store report running information to the profiling database. You can then view profiling report 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. In JReport cluster environment this property will be saved in the server's system database and is not created 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, you can predefine a linked catalog in the server level for the My Components, Public Components, My Reports and Public Reports folders to inherit. If the property is set to false as default, the My Components, Public Components, My Reports and 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 Server can be administered from a remote client via RMI APIs.
server.rmimonitor.enable | true | Specifies whether the JReport Server is monitorable by a JReport Server Monitor. Note: Setting this property to true takes the same effect as setting both server.rmiadminservice.enable and server.rmiserver.enable to true. You can see the message "RMI Report Server started." in the command window when you start up JReport Server.
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 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 open 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. In JReport cluster environment this property will be saved in the server's system database and is not created in the server.properties file.
server.security.advanced_password.contains_lowercase | false | Specifies whether to include lowercase letters in the password when JReport's built-in password rule is applied. If it is set to true, the password must contain at least one lowercase letter.
server.security.advanced_password.contains_number | true | Specifies whether to include numbers in the password when JReport's built-in password rule is applied. If it is set to true, the password must contain at least one Arabic numeral.
server.security.advanced_password.contains_symbol | false | Specifies whether to include symbols in the password when JReport's built-in password rule is applied. If it is set to true, the password must contain at least one character that is not defined as letter, numeral or space.
server.security.advanced_password.contains_uppercase | true | Specifies whether to include uppercase letters in the password when JReport's built-in password rule is applied. If it is set to true, the password must contain at least one uppercase letter.
server.security.advanced_password.enabled | true | Specifies whether to enable the advanced password rule for JReport Server.
server.security.advanced_password.limited_min_length | true | Specifies whether to enable setting minimum number of characters that can be used in the password when JReport's built-in password rule is applied.
server.security.advanced_password.min_length | 8 | Specifies the minimum number of characters that can be used in the password when JReport's built-in password rule is applied. The number specified here should be larger than the password minimum length defined for all users created on the Security > User panel.
server.security.advanced_password.user_defined_rule | false | Specifies whether to enable the user defined password rule. If it is set to true, the user defined password rule will be applied; if false, then JReport's built-in password rule will be applied.
server.security.check_csrf | true | Specifies whether to enable Cross Site Request Forgery (CSRF) checking for JReport Server.
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 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 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. By default this property does not appear in the server.properties file and you need add it manually if you want to use it.
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/userguide/server/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.tutorial | /help/tutorial/index.htm | Specifies JReport Tutorial documentation URL.
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 result. In JReport cluster environment this property will be saved in the server's system database and is not created in the server.properties file. 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 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 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. The priority levels are from 1 to 10 in ascending order of lowest priority to highest priority. This property is available to administrators. By default this property is ignored unless server.properties is modified to set queue.policy not equal to 0.
task.initial.priority.schedule | 5 | Specifies the default priority level for the scheduled running tasks. The priority levels are from 1 to 10 in ascending order of lowest priority to highest priority. This property is available to administrators. By default this property is ignored unless server.properties is modified to set queue.policy not equal to 0.
WEB
web.design_servlet_path | /webreporting | Specifies the web design servlet mapping path.
web.dhtml_jsp_path | /dhtmljsp | Specifies the mapping path of the Page Report Studio JSP files.
web.dhtml_servlet_entry_path | /jrdhtml | Specifies the Page Report Studio servlet mapping path for loading reports.
web.dhtml_servlet_path | /dhtml | Specifies the Page Report Studio servlet mapping path.
web.force_excel_download_dialog | false | If true, a File Download dialog will be displayed asking to either open the report or save the report result file after activating a direct running task or submitting an advanced running task as the Excel format. If false, the report is opened directly.
web.force_pdf_download_dialog | false | If true, a File Download dialog will be displayed asking to either open the report or save the report result file after activating a direct running task or submitting an advanced running task as the PDF format. If false, the report is opened directly.
web.force_ps_download_dialog | false | If true, a File Download dialog will be displayed asking to either open the report or save the report result file after activating a direct running task or submitting an advanced running task as the PostScript format. If false, the report is opened directly.
web.force_rtf_download_dialog | false | If true, a File Download dialog will be displayed asking to either open the report or save the report result file after activating a direct running task or submitting an advanced running task as the RTF format. If false, the report is opened directly.
web.force_text_download_dialog | false | If true, a File Download dialog will be displayed asking to either open the report or save the report result file after activating a direct running task or submitting an advanced running task as the Text format. If false, the report is opened directly.
web.force_xml_download_dialog | false | If true, a File Download dialog will be displayed asking to either open the report or save the report result file after activating a direct running task or submitting an advanced running task as the XML format. If false, the report is opened directly.
web.help_servlet_path | /help | Specifies the Page Report Studio help servlet mapping path.
web.ie.login.use_new_realm_name | false | Web browser 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 Server requires a new realm name, then the user name and password that web browser 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 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'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 whether to show the resource name extension in the resource tree on the JReport Server Console page.
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 running in Applet format in Advanced Run mode.
web.page.option.to_dhtml | true | Specifies to support running in Page Report format in Advanced Run mode.
web.page.option.to_excel | true | Specifies to support running in Excel format in Advanced Run mode.
web.page.option.to_html | true | Specifies to support running in HTML format in Advanced Run mode.
web.page.option.to_pdf | true | Specifies to support running in PDF format in Advanced Run mode.
web.page.option.to_ps | true | Specifies to support running in PostScript format in Advanced Run mode.
web.page.option.to_rtf | true | Specifies to support running in RTF in Advanced Run mode.
web.page.option.to_text | true | Specifies to support running in Text format in Advanced Run mode.
web.page.option.to_xml | true | Specifies to support running in XML format in Advanced Run mode.
web.page.option.use_relative_app_url | true | Specifies whether the URLs contained in the HTML contents returned by JReport 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 Server and their clients.
web.skin.dir | /skin | There is a folder named "skin" in `<install_root>\public_html`. It contains all files concerning Page Report Studio 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 (submitted using the Run or Advanced Run command) will be considered as a large report and put into the Background Tasks list after the time limit.
web.version.mark_unviewed | true | Specifies whether to mark the unviewed version results in bold.
web.viewer.option.show_name_with_postfix | true | Specifies whether to show the resource name extension in the resource tree on Web Report Studio, Page Report Studio and JDashboard.

#### performance.cachecat and performance.cacherpt

The process for viewing reports is a combination of both loading reports from disk and generating report files. It is obvious that skipping either one of these two steps will shorten the elapsed time. JReport Server enables you to cache reports 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 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 Server will commit the action and refresh the Schedule list. If this value is set to True, JReport 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 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 delivery, JReport 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 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 uses some heap memory. If the heap memory is used up, an OutOfMemoryException will be thrown.

Flag -Xms specifies the initial heap size and flag -Xmx specifies the maximum heap size. For example, -Xms256m -Xmx1024m means that the initial heap size is 256M and the maximum heap size is 1024M.

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 principal, the principal'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 principal, the principal's permission will be those inherited from its permission inherit tree. However, if the administrator did set permissions for the principal, the principal'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 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 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 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.

This property functions the same as the Enable "Publish to Versioning System" for Background Tasks View option in the Configuration > Advanced panel of the JReport Administration 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 preview page (preview a report result using the Run command). Click the link to publish the result to version in the current format.