There are a few things that contribute the refresh rate with reports on a dashboard:
- View default cache period. (ReportView.DefaultCachePeriod). If this is non-zero results will be cached in memory on the server. By default the cache will store no more than 20 result sets at a time, and will not re-use results that are more than 24 hours old. These parameters are configurable in web.xml. You can set the cache size to zero to disable it, in which case the default cache period on the view is effectively ignored. Cached results are matched by the query sql, including any filters (normal filters and source filters) so the results will be specific to the user who ran them. If a result is cached in memory, and the report is then modified/edited, the previously cached result will not be re-used (i.e. we go back to the source database again). Note: the value entered through the view builder is in hours, but the value stored in the database is in seconds.
- Report refresh type. (ReportHeader.ScheduleTypeCode) If set to Manual or Periodic, the report results are saved to the database. The next time the report is run, the most recent version found in the database is used. If no results are found in the database, we go back to the source database to retrieve the results. If you maximize the report from the dashboard (or open it from the report list) you can choose between the available saved result sets. If results are saved to the database, and the report is then modified/edited, the previously saved results will not be re-used. For this option to be available, the following conditions must be met:
- The sub-category that the report is saved into must have the "Keep archived report result sets" option enabled.
- The report is from a standard JDBC source (not OLAP).
- The user saving the report has access to the "MI Reports" function.
- The report is set to Active.
- The report is not a Jasper/BIRT report.
- The report does not use drill through, drill down or codisplay reports.
3. Dashboard refresh option. (ReportHeader.RefreshTime) If the refresh dashboard option is selected and the time entered is non-zero, the dashboard report will get refreshed periodically when a user has the dashboard page open. The time period is counted from when the report initially loads. If the report result is cached in memory or saved to the database (1 or 2 above) then this option won't go back to the source database. Eg. if the view default cache period is set to 1 hour, and the dashboard refresh is set to 30 seconds, it will still only go back to the database once per hour.
This option is only available if the user saving the report has access to the "Refresh Dashboard Reports" function.reports get re-run whenever you go back to the dashboard - this is only correct when the results are not cached or saved to the db as above. Every time a dashboard page loads (or you change tabs), the options above are checked. If a report result is not cached or saved to the database, Yellowfin will always go back to the source database to run the query.