This commit is contained in:
2021-10-28 19:59:55 +00:00
parent bcb343b874
commit f0be5948d6
5 changed files with 27 additions and 1 deletions

View File

@@ -1,3 +1,18 @@
# BUSY WHEN REPORTING
# REPORTING MAXIMUM LIMIT WARNING
[UNDER CONSTRUCTION PRE-RELEASE]
Rendering reports is a very demanding process at the server involving a significant of memory and cpu cycles. In order to ensure availability of the server for all users there is a configurable limit to the number of reports that can be processed simultaneously.
When all available "slots" for processing reports are in use you will see the maximum limit warning message:
![The server is currently at the maximum limit for processing reports, please try again shortly](img/ay-report-busy.png)
It is normal to see this message from time to time and simply resubmitting the report request again will usually return the report as expected.
If you see this message on a regular basis it may indicate the need for your AyaNova server operations manager to adjust the report rendering limit settings. They should consult the Server Operations Configuration section of this manual for guidance.
## How to work around limits for large reports
A large report with a unusually high number of pages may be rejected if it's taking too long to render at the server while others are attempting to report at the same time. AyaNova will only enforce the configured time out when a report is taking up a rendering "slot" and preventing other's from being able to report. This means that there are no timeout limits as long as no other users are blocked from reporting.
For this reason it's recommended that long running reports that are getting bumped be instead requested at a time when few if any other users will be requesting reports to avoid potential conflict and having your long running report "bumped" out of the queue.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -8,6 +8,10 @@ When AyaNova receives a report request it checks first to ensure there are not m
It's important to note that this setting does not prevent AyaNova from processing a large time consuming report for any length of time necessary to complete it; this setting only takes effect when another report is requested to be rendered and there are no slots free for report rendering. For this reason, if a User has to render an unusually large report that is known to take longer than the timeout period they would be advised to render that report when no one else is requesting a report (i.e. after hours).
## 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.
## Default
If no override is specified AyaNova will use the following default value:

View File

@@ -4,6 +4,10 @@ The report rendering timeout value controls how long AyaNova will wait for a pri
This avoids a situation where a subsequent user can not get their report because a prior 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.
## 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.
## 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 indefinitely for as long as it takes to complete. However, if a subsequent report request is made and the first report has not completed yet then AyaNova will use this setting to wait for the first report to process before starting the next one. If the timeout period completes without the first report completed rendering then AyaNova will forcibly stop processing the first report and release the resources dedicated to it and start processing the new report.

View File

@@ -101,6 +101,7 @@ nav:
- 'Data list columns': 'ay-data-list-column-view.md'
- 'Log': 'ay-log.md'
- 'Report editor': 'ay-report-edit.md'
- 'Report maximum limit warning': 'ay-report-busy.md'
- Extensions:
- 'Tags extension': 'ay-ex-tags.md'
- 'Export extension': 'ay-ex-export.md'
@@ -140,6 +141,8 @@ nav:
- 'Server temporary files folder': 'ops-config-folder-temporary-files.md'
- 'Database configuration': 'ops-config-db.md'
- 'PORT and URL configuration': 'ops-config-use-urls.md'
- 'Reporting timeout configuration': 'ops-config-report-rendering-timeout.md'
- 'Reporting max instances configuration': 'ops-config-report-rendering-max-instances.md'
- 'Environment variable reference': 'ops-config-environment-variables.md'
- 'Security and JWT web tokens': 'ops-config-jwt-secret.md'
- 'SuperUser password reset': 'ops-config-set-superuser-pw.md'