Fixing GFEs in SYSREPOS (Performance)
Created at 17 DEC 1998 04:30PM
When fixing GFEs in SYSREPOS follow these steps:
STEP 1: Log into the SYSPROG application as SYSPROG
STEP 2: From the System Editor command line:
run attach_table 'REVBOOT','REVMEDIA'
STEP 3: Create a new Record named with the first field being REVREPOS.
Save this under the table REVMEDIA and row QREPOS*GLOBAL.
STEP 4: From the System Editor command line:
run detach_table 'REVMEDIA'
STEP 5: From the System Editor command line:
run attach_table'REVBOOT','QREPOS'.
STEP 6: Go to the Database Manager.
STEP 7: Choose the Utilities menu choice.
Under Open Insight Tables, choose LHVerify to check for GFEs and subsequently choose Fix Group Format Errors to fix the GFEs.
STEP 8: After choosing either LHVerify or Fix Group Format Errors, then choose SYSREPOS (by double clicking) as the table. Then hit the Verify or Fix GFEs button respectively.
STEP 9: From the System Editor command line:
run detach_table 'QREPOS'
STEP 10: From the System Editor command line:
run attach_table 'REVBOOT','REVMEDIA'
STEP 11: From the System Editor command line:
run delete_row 'REVMEDIA', 'QREPOS*GLOBAL'
STEP 12: From the System Editor command line:
run detach_table 'REVMEDIA'
If you do not follow this process when fixing GFEs, the entity information could be written back to the repository decrypted. As a result, when they are brought out of the repository they are encrypted (by the decryption process). An example of this problem is the error message "You do not have access or update privileges". If this occurs, records in the SYSREPOS table will appear to be garbage when viewed in the System Editor.
Here are the steps to reverse this problem if it occurs:
STEP 1: Log into the SYSPROG application as SYSPROG
STEP 2: From the System Editor command line:
run attach_table 'REVBOOT','REVMEDIA'
STEP 3: Create a new Record named with the first field being REVREPOS.
Save this under the table REVMEDIA and row QREPOS*GLOBAL.
STEP 4: From the System Editor command line:
run attach_table' REVBOOT','QREPOS'.
STEP 5: From the System Editor command line:
run detach_table 'REVMEDIA'
STEP 6: Then create a Stored Procedure called FIX_REPOS (System Editor, File, New, Stored Procedure) as follows:
function fix_repos(void)
declare subroutine Set_FSError, Send_Info
$insert Logical
$insert FSErrors_100
open "SYSREPOS" to fRepos else return "error open SYSREPOS"
open "QREPOS" to fRaw else return "error open QREPOS"
select fRaw
eof = FALSE$
Cnt = 0
loop
readnext Key else
eof = TRUE$
if @file.error<1,1,1> # FS_READNEXT_DONE$ then
Set_FSError()
return "error readnext"
end
end
until eof
read Rec from fRaw, Key else
Set_FSError()
return "error read ": quote(Key)
end
if index(Rec, "$PUBLIC", 1) then
* it must be un-encrypted
Send_Info(Key)
Cnt += 1
* writing it to the repository will re-encrypt it
write Rec to fRepos, Key else
Set_FSError()
return "error write ": quote(Key)
end
end
repeat
return "success, ": Cnt: " records fixed"
STEP 7: From the System Editor command line:
run FIX_REPOS
(or run it from the System Monitor command line to see more information)
STEP 8: From the System Editor command line:
run detach_table 'QREPOS'
STEP 9: From the System Editor command line:
run attach_table 'REVBOOT','REVMEDIA'
STEP 10: From the System Editor command line:
run delete_row 'REVMEDIA', 'QREPOS*GLOBAL'
STEP 11: From the System Editor command line:
run detach_table 'REVMEDIA'