![]() |
|||||||
![]() |
|
||||||
![]() |
|||||||
|
We recently came across a situation that we have literally never encountered in our decades of working with Linear Hash. Basically a FIXLH operation was interrupted mid process and hi-jinks ensued. The resultant mess took a while to sort out but our findings may prove useful if you ever find yourself in a similar situation. This specific issue was encountered on an AREV 3.12 system but the logic for FIXLH remains roughly the same so the information remains applicable. Basically, the FIXLH operation was interrupted about 10% of the way through processing (the NTVDM abended). A quick check of the table header revealed that it believed itself to be a clean empty table with no rows. Yet listing the table produced a set of row ids after an initial pause while nothing was apparently happening. What had happened was that the table header had been reset to that of an empty table, and the first 10% or so of the primary frames had been blanked. This caused us to investigate the processing undertaken by FIXLH and we can confirm that it is as follows: Create and/or clear the temporary dumpfix table grab frame zero group write rows in group to temporary dumpfix table set frame zero header to that of an empty table loop grab next group write rows in group to temporary dumpfix table wipe primary frame to null until no groups left repeat copy rows in temporary table back to source table So if the operation is interrupted, some of the data will be in the source table and some will be in the temporary dump fix table. As an additional caveat, note that if the rows in the temporary dump fix table are not stored off elsewhere, they will be lost next time FIXLH is run. Since the advent of the UD we've never had to actually fix a GFE for quite some time, so this was an eye-opening operation! Backups are your friend...
Previous Posts
Archives
BlogRoll
Subscribe
Subscribe via RSS
(For those who still appreciate civilised technology.)
Add to your reader
Scan to subscribe
Subscribe to
|
|||||||
![]() |
|||||||
| |||||||