diff --git a/docs/8.0/ayanova/docs/ops-config-report-rendering-timeout.md b/docs/8.0/ayanova/docs/ops-config-report-rendering-timeout.md index 75e5b271..7226c75f 100644 --- a/docs/8.0/ayanova/docs/ops-config-report-rendering-timeout.md +++ b/docs/8.0/ayanova/docs/ops-config-report-rendering-timeout.md @@ -1,16 +1,25 @@ # REPORT RENDERING TIMEOUT SETTING -The report rendering timeout value controls how long AyaNova will wait for a report to complete rendering. +The report rendering timeout value controls how many minutes AyaNova will wait for a report to complete rendering. -This avoids a situation where a report generation is frozen due to a bug in a report template script or simply selecting too many records to report in a practical amount of time. +This avoids a situation where a report generation is frozen due to a bug in a report template script or simply selecting too many records to report in a practical amount of time and consuming excessive resources at the server. ## Performance implications Note that increasing report rendering settings too high can result in the server running out of physical memory or CPU capacity. When increasing the limits be mindful of this potential and monitor the server carefully to ensure it's not "bottlenecking". The reporting capacity scales directly with the amount of memory and CPU capacity available to the server. +## What to do if running into timeout issues + +Report rendering performance is directly tied to the resources available to both the AyaNova server and the PostgreSQL server (often the same machine). + +Before increasing this timeout or filtering down the number of records in a report, check if the server has enough resources or is running into performance issues such as the CPU hitting 100% regularly, available memory running out or slow disk speed. + +If the server is not running out of resources then reports with too many records that cause them to timeout even when increased to the maximum should be broken down into multiple smaller reports by filtering the data table used to generate the report. For example, instead of printing multiple years worth of records at once, filter by shorter time periods using the data table filters and print separately. + + ## How timeouts work -When a report is requested to be rendered AyaNova starts the process and makes note of the time and will process that report until completed or the timeout is reached. +When a report is requested to be rendered AyaNova first adds this timeout value to the current date and time, makes a note of it as the expiry time and starts the reporting process. Throughout the reporting process the expiry time will be checked periodically and if it is ever reached the report rendering process will be stopped and an error returned. The value is specified in **minutes**. @@ -25,7 +34,7 @@ This means AyaNova will wait for a prior report to complete for no longer than 3 ## MINIMUM / MAXIMUM -There is a hard cap of 15 minutes built into AyaNova so specifying a value greater than 15 minutes will be ignored and 15 minutes used instead. +There is a hard limit of 15 minutes built into AyaNova so specifying a value greater than 15 minutes will be ignored and 15 minutes used instead. Specifying a value less than 1 minute will be automatically changed to 1 minute as the minimum allowed value. ## Overriding