sign in
Kore Tech Tip #1009

Our technical tips are here to help you find new or easier ways to solve some of your technical challenges or to show you a new technique. We hope you find them useful. 

Please contact us at support@koretech.com if you would like to share one of your Tech Tips or need help solving a technical challenge. We would be happy to help you.

 

Another way to fix a corrupted UniData/UniVerse file

The standard way to fix UniVerse files is to run the UVFIXFILE command.  However, the other day I ran into a problem with a Type 2 file on an NT/Universe system where a basic program when writing specific records would abort and disconnect the user from the system.  Since this was the Universe DBMS we ran UVFIXFILE to see what that discovered and there was no reported problem with the file.  It is documented that UVFIXFILE will not find every file problem -- apparently this was one of those situations.

The process that was causing the problems wrote records to a file with ID’s like 123*1 123*2 123*3…  After much research, we found that the process would abort when a record whose item-ID ended with  *10 was being written.  This was very odd as records 123*1 to 123*9 were written without a problem.  We tested writing a record with the *10 ID and got disconnected.

Now what do you do?  You use a solution that is as old as the PICK Operating System!  We created a temporary file and counted the number of records in the corrupted file:

     >CREATE-FILE TEMP-PAUL 1 1001

     >COUNT FILE1

     85637 records counted.

We next copied the records from the corrupted file to the temporary file:

     >COPY FILE1 * (IN
     TO:(TEMP-PAUL

     85637 records copied.

Fortunately, it copied the same number of records.  Next, we cleared the original file, and then copied our data back:

     >CLEAR-FILE DATA FILE1
     File "FILE1" has been cleared.
     >COPY TEMP-PAUL * (IN
     TO:(FILE1

     85637 records copied.

Next we tested the file by trying to write a record with exactly the same ID as one that failed – It worked:

    >ED FILE1 123*10
    New record.

    ----: 

Last, we got rid of the temporary-file:

    >DELETE-FILE TEMP-PAUL

Now, there was lots of data to fix – lots of orphaned records and summarized data that was overstated, but at least the system would allow us to work on that file!

Note - These commands will work on UniData with the same syntax except that you may not wish to use an “I” option with the COPY command as the “I” option will list all items being copied while on Universe it suppresses that list.

 

UniData and UniVerse are products, copyrights and trademarks of IBM Software

View Tech Tip Archive
 

 


 

  Home  | About Kore  |  Kore News  |  Products  |  Services  |  DataFlo  |  Contact Us  |  Careers

Copyright © 2008 Kore Technologies. All rights reserved.
Call 1-866-700-KORE (5673)   E-Mail
Legal Disclaimer