Server Versions: 7.0.5.00.01 and 7.0.7.00.00
Currently, in the event of an unexpected server reboot (i.e, something that kills the TDV instance without cleanly shutting down the monitor process), cache refresh statuses are not reconciled.
This leads to an inconsistency wherein TDV thinks the cache refresh is in progress, but isn't, which prevents additional refreshes from occurring. This persists across multiple restarts.
The current fix to this is to manually update the cache status table to mark the last refresh as F, and restart the TDV instance to clear the inconsistent status from memory.
This does not always occur, but has occurred at least twice - once on 7.0.5.00.01, once on 7.0.7.00.00
Steps to reproduce:
- create an SQL script that outputs a cursor by SELECTing from DUAL (one field is sufficient)
- Add a sufficiently long call to Pause at the end of the script
- Configure caching
- Execute a cache refresh
- Observe that the Cache Refresh is REFRESHING in the Manager -> Cached Resources tab
- REBOOT the server where TDV is running
- Restart the TDV instance
- Observe that the Cache Refresh is still REFRESHING in the Manager -> Cached Resources tab
Requested fix:
On startup, TDV should identify cache refreshes which were in progress prior to the last shutdown, and clean them up (mark them as failed). Similar to what it does on a clean shutdown ("Server was shut down during the refresh").
We have incorporated a number of improvements to cache refreshes since this Idea was originally submitted. Most notably, we introduced options for cancelling in-progress cache refreshes and streamlined access control for cached resources in 8.8.1: https://docs.tibco.com/pub/tdv/8.8.1/TIB_tdv_8.8.1_relnotes.pdf.