Clearing the Process Scheduler Cache – without a Reboot June 11, 2007
Posted by Duncan in Administration, Application Engine, PeopleSoft, SQL.trackback
I subscribe to a couple of PeopleSoft technical mailing lists / websites and I came across an interesting tip tonight that I thought I’d pass on.
The post was on IT Toolbox (peoplesoft.ittoolbox.com) and the poster was a guy called Neil Pak (at least that’s what the email said, I guess his real name could be anything).
The issue being discussed was one that’ll be familiar to all developers who’ve written a few App Engines in their time – needing to bounce the Process Scheduler to clear the cache, to get the Process Scheduler to use the latest changes. Sometimes it picks them up, sometimes it doesn’t, particularly if you’re changing an existing object – and for me this has happened mostly with SQL Objects.
The normal solution is to bounce the Process Scheduler and clear the cache, however this isn’t possible all the time. Perhaps there’s a long-running job that’s processing, or perhaps your friendly DBA/SysAdmin is busy getting a cuppa etc. Other times I’ve just cloned the SQL Object in question and appended a digit to the object name and used that version instead. This works also, but you do tend to end up with a stack of similarly named SQL Objects in your project.
Neil’s solution – and you’ll need access to the Process Scheduler server for this – is to delete some specific cache files. To quote Neil:
I did some testing and found that, at least for app engines that finished successfully, I could go in and delete the .dat and .key files (but not the cache.lok) and basically the cache was deleted … One could probably just delete all the .key and .dat files without much regard to which folder it was since any files still in use would not delete.
Note: I haven’t tested this myself yet.
Edit:
The original post did say that this was tested with the AESRVs disabled. I had a quick test today and couldn’t delete any of the cache files under the AESRV directories. I guess the processes keep them locked, or perhaps it was just that we had lots running. I’ll update this post again if I find out more.
Comments
Sorry comments are closed for this entry
One of the biggest reasons for clearing the cache for App Engines is because the system doesn’t seem to recognize changes to SQL. In my experience, if you change PeopleCode in an App Engine and re-run the process, it uses the new PeopleCode. But, if you change SQL and re-run the process, it uses the old SQL before the change.
One trick I have learned is that if you change the structure of the App Engine steps or actions, it will make the system re-read all the SQL instead of using what is in the cache. I used to add a step, save the program, delete the step, and save one more time. But, even easier, you can just uncheck the active flag for one step, save, re-check the active flag, and save one more time.
So, out of habit, I uncheck the Active flag, make my SQL change, save the program, re-check the active flag, and save. This way, I have very little problem with cache during App Engine development.
I built this habit in PeopleTools version 8.46, but I have noticed that I don’t have to do it in PeopleTools version 8.49.
I am running App Engine processes in PT 8.49.18 and having severe issues with the system not recognizing changes to the App Engine. I changed SQL, PeopleCode, deleted and resaved and nothing seems to change. I have to re-create my app enginge to get the system to re-read the information. Apart from clearing the cache on the process scheduler, which you mentioned, is there anything else that has come about that we can do?
FYI, I’m running PT 8.43 at the moment and had some changes in an App Package that weren’t being recognised, no matter what I did. Deleting the cache was the only option.