Kbase P32238: Getting BI Timestamp mismatch after removing .lk file of database and starting second session agains
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  25/09/2009 |
|
Status: Verified
SYMPTOM(s):
Errors truncating the before-image file
Errors connecting to database
** The database was last used <date/time>. (886)
** The before-image file expected <date/time>. (887)
** Those dates don't match, so you have the wrong copy of one of them. (888)
Progress session terminated abnormally but process still running at OS level.
.lk file deleted by user
New session started while old process still running.
FACT(s) (Environment):
Progress/OpenEdge Versions
All Supported Operating Systems
CAUSE:
If a Progress session dies but the process does not end it may still write to the Progress files.
If the .lk file is removed a new session can be started against the database, while the previous session is still writting.
Whenever a Progress process is started with the immediate intent to connect to a database, the process checks if there is a .lk file.
If the Progress process does not see the .lk file, which is an indicator to Progress that the database is in use, it will start but the new Progress session cannot update all database files because some of those files will likely be in use by the old process.
However the files it does modify, will now have a time stamp which will be different from all other database files.
This will cause the database to have a timestamp difference when the next process which has full control of all files detects the file(s) with different time stamps.
FIX:
Restore the database from backup and roll forward any after image files.
To avoid reoccurrence when a Progress session dies, make sure that the process is also gone at the Operating System level. If the process is still running, be sure to remove it completely. Before deleting the database .lk file make sure there are no processes accessing the database.