After the update to HR.Net 3.0 we encountered a new problem: changes to screens/workflow forms done in Admin Console did not come up on the actual front-end. In the previous version it took about a minute to get the updated screen through the web-interface.. or login out-login back in did the job.
In this case all the magic we got used to did not work. We raised a question with Vizual about this.
First solution they came up with was to restart IIS server. So after all the people in the office wondered off home on Friday evening, I restarted IIS.. and hooray! changed did come through instantly.
That is only a part of the story.. a few weeks down the line, we noticed the same problem comes up again. Restarting IIS every day is not the best solution to this question.. So we asked Vizual again.
This time Vizual came up with different setup: we needed to change the settings in web.config file in the main installation of HR.Net.
Before I describe what to change, be aware, that every change to this file in the live system will lead to login out of all the users.. so do that when there are nobody working in the system. You can check who is currently loged in via this query run against your current HR.Net database:
select userid from oc_users where loggedon='T'
So now you can go into web.config and do the magic: you need to find a string “<CacheExpiryInfo>“. This section will look something like this:
<CacheExpiryInfo> <XmlSerializerSection type="Common.Configuration.SectionHandlers.CacheExpirySettings,Common"> <CacheExpirySettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <PluginExpirySetting> <PolicyType>epSlidingTime</PolicyType> <Value>00:05:00</Value> </PluginExpirySetting> <GetDataExpirySettings> <PolicyType>epSlidingTime</PolicyType> <Value>00:05:00</Value> </GetDataExpirySettings> <ScreenDefsExpirySettings> <PolicyType>epSlidingTime</PolicyType> <Value>00:05:00</Value> </ScreenDefsExpirySettings> <FieldSecurityExpirySettings> <PolicyType>epSlidingTime</PolicyType> <Value>00:05:00</Value> </FieldSecurityExpirySettings> </CacheExpirySettings> </XmlSerializerSection> </CacheExpiryInfo>
Before this section there will be loads of comments explaining what is going on. What Vizual recomended to do is to change “epSlidingTime” to “epDisabled“, save the changes, wait a few moments until the change come through, and change it back to “epSlidingTime“.
I’ve done what they said. That fixed the problem.. But something was telling me that they have no idea what it is actually does. This way it only cleares the cache and nothing else.. so a week after there will be the same problem again.
I’ve changed the caching time from one hour to five minutes. That does the job, but very poor. It definately takes more than 5 minutes to refresh.
Turning the cache off is one of the possibilities, but might be risky to overload your server: every time somebody is bringing up a screen, it will be genereated from code, not taken from the cache. (At least I’m thinking it works like this)
Good luck with this one.. I’m still in the process of playing with this crap.. will keep you updated.