PeopleTools | How to deal with unknown data integrity errors
A. What IS a Data Integrity Error?
The dreaded ‘Data Integrity’ error is one that most users and developers are familiar with:
In the majority of cases, the error is a one-off problem caused by a change to an underlying system object. Typically, the user is in the component at the same time one of the underlying objects is being changed in the database. When the object is saved, this has the effect of updating the ‘version number’ of the object. However, the end user’s session is still linked to the older version number, so a data conflict occurs when the user tries to save or interact with the database. The system throws a fatal error, returning the user to the search record, or in more extreme cases, out of the system entirely. Usually if the user logs back into the system and tries again, the component operates as expected.
B. Why Doesn’t It Go Away?
In rarer cases, the ‘Data Integrity’ errors continue to persist even though no changes are being made to the database objects. The errors can also appear in quite a random fashion, coming up in one context but not in another, similar context. The cause of the continual data integrity errors is often difficult to pinpoint, but could be due to an App Server caching issue, or a developer having a corrupt object sitting in local cache.
Through trial-and-error more than anything, we managed to work out a process for dealing with unexplained data integrity errors. These tasks should be run in the order specified:
- Ensure all users are logged out of the system (both front end and developers).
- All developers should clear any local App Designer cache (typically stored in c:\PS\cache).
- The administrator should then run the ‘Portal Security Sync’ process (PeopleTools -> Portal -> Portal Security Sync). Once this has completed, the administrator should then log out of the system as well.
- The App Server cache should be cleared by the system administrator.
- The system administrator should log back in and run the Versioning App Engine process (PeopleTools -> Application Engine -> Request AE… with a process name of ‘VERSION’).
Once the ‘VERSION’ process has run, users and developers can then log back in and try again, hopefully with no more data integrity errors.