This commit is contained in:
2021-12-23 19:24:14 +00:00
parent 9c6b6e52c8
commit 505898875f
3 changed files with 17 additions and 12 deletions

4
.vscode/launch.json vendored
View File

@@ -48,8 +48,8 @@
"AYANOVA_DATA_PATH": "c:\\temp\\ravendata",
"AYANOVA_USE_URLS": "http://*:7575;",
"AYANOVA_SERVER_TEST_MODE": "true",
"AYANOVA_REPORT_RENDERING_MAX_INSTANCES":"1",
// "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
"AYANOVA_REPORT_RENDERING_TIMEOUT":"1",
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "large",
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_14\\bin\\"
},
"sourceFileMap": {

View File

@@ -7,13 +7,16 @@ Formats available are .json and .csv (comma separated values).
## JSON
JSON is most appropriate for preserving the original structure of the data being exported and a good "round trip" format as it's most compatible with importing back into AyaNova. JSON format is becoming more widely accepted and you should choose this format where possible. There are also numerous conversion utilities and online sites if you need your data in another format from JSON.
JSON is most appropriate for preserving the original structure of the data being exported and a good "round trip" format as it's most compatible with importing back into AyaNova. JSON format is becoming more widely accepted and you should choose this format where possible. There are also numerous conversion utilities and online sites if you need your data in another format from JSON.
## CSV
.csv is more widely compatible with 3rd party applications than JSON but CSV is a "flat" file format that will lose some of the structure of the source data so some adaptations need to be made to the data during export and it may not be directly importable back into AyaNova again.
## TIME ZONE IS UTC
## Time zone is in UTC
Dates and times are exported in UTC / GMT time zone directly as they are stored at the server.
Dates and times are exported in UTC / GMT time zone directly as they are stored at the server.
## Timeouts during export
Exporting data shares the same data gathering code as report rendering and the same [AYANOVA_REPORT_RENDERING_TIMEOUT](ops-config-report-rendering-timeout.md) timeout setting applies to exporting data.

View File

@@ -1,26 +1,28 @@
# REPORT RENDERING TIMEOUT SETTING
The report rendering timeout value controls how many minutes AyaNova will wait for a report to complete rendering.
The report rendering timeout value controls how many minutes AyaNova will wait for a report or Export Data operation 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 and consuming excessive resources at the server.
## Exporting data
Export features in AyaNova share the same data gathering functionality as report rendering and so exporting data is also affected by this timeout setting.
## 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).
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.
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 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.
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**.