SYMPTOM
Users who execute reports in Strategy Intelligence Server find that existing caches for those reports are not hit and new caches are not created. However, they find they can use the server cache of other reports.
CAUSE
If a user executes a report containing an object that they do not have access to, the cache is not created and that user can't share the existing cache. Even if the user has permission to every object in the template with the exception of a simple metric embedded in a compound metric, this issue will occur.
The reason behind this behavior is as follows:
When a report is executed, the system attempts to create a cache instance with many parameters including the template ID. The report then goes through a resolution stage which assigns the template a new ID at run-time because of the Access Control List (ACL) of the object for which the user doesn't have permission. If there is an existing cache in the Strategy Intelligence Server, the system attempts to match that cache with the cache ID which includes the run-time template ID. As expected, the cache can`t be matched. The system then tries to instantiate the cache instance created before the resolution stage and because of the different template IDs, instantiation fails and the cache can't be created.
WORKAROUND
If there is a significant number of users who don`t have access to certain objects in a report and, therefore, can`t share cache, administrators should consider creating separate reports for those users. The new reports should only contain objects that designated users should have access to. Restrictions can be added to the original report so that only administrative users can use it. In this case, all users would be able to use caches but they would use different ones.