In v188.8.131.52, Accelerator BP Service Host has been updated to vastly improve the rate it is able to look up per-module Framework Data, which makes both WPF and MVC applications start up more quickly. This improvement was made by consolidating database queries and briefly caching query results across framework service calls. In earlier versions, it could take up to 12 seconds (on a slow network) to retrieve all of the Framework data for a single module, with many database queries per second during the entire period. That's been reduced to less than 100 milliseconds and just a few database queries after the first couple of modules.
- For WPF, the per-module Framework data is retrieved when the application is started after downloading a new version or when using the Clear Cache option.
- For MVC, the per-module Framework data is retrieved when the website (Line of Business, CMS, or custom) is restarted on IIS, and intermittently after that.
The Accelerator BP Service Host's WebAppSettings.config adds eight new configuration settings that control the cross-request caching. If the caching is suspected to be causing a problem (eg: metadata not being updated, or user-specific metadata leaking across users) the IsDisabled settings can be used to turn the caching off. Some performance improvements will still be present; each module will take about 1 second to update.
The memory limit settings can be used to control the cache's size in memory, and PollingInterval controls how often the memory size is checked. If the cache grows too large, older values will be dropped out.
The SlidingExpiration settings control how quickly a cached value will be dropped after its last access. These can be quite short during framework data updating because the service calls are fired very rapidly. Making these periods longer can improve performance during application usage, but could cause delays in recognizing security/authorization changes or user-initiated changes to view columns.
These settings only need to be added to your Accelerator BP Service Host deployment if you wish to change them; the settings shown below use the default values the code will use if the settings are missing.
<add key="Feature.FrameworkAuthCache.IsDisabled" value="False"/> <add key="Feature.FrameworkAuthCache.CacheMemoryLimitMegabytes" value="0"/> <add key="Feature.FrameworkAuthCache.PhysicalMemoryLimitPercentage" value="0"/> <add key="Feature.FrameworkAuthCache.PollingInterval" value="00:02:00"/> <add key="Feature.FrameworkAuthCache.SlidingExpiration" value="00:01:00"/> <add key="Feature.ViewColumnCache.IsDisabled" value="False"/> <add key="Feature.ViewColumnCache.CacheMemoryLimitMegabytes" value="0"/> <add key="Feature.ViewColumnCache.PhysicalMemoryLimitPercentage" value="0"/> <add key="Feature.ViewColumnCache.PollingInterval" value="00:02:00"/> <add key="Feature.ViewColumnCache.SlidingExpiration" value="00:00:20"/>