598510 message in IDMSDBAN
search cancel

598510 message in IDMSDBAN

book

Article ID: 231249

calendar_today

Updated On:

Products

IDMS

Issue/Introduction

The IDMSDBAN utility is issuing the following message. 

598510 - DBKEY    2/67008211:3    LAST LINE INDEX IS FOR PDR

What does this message mean?

Environment

Release : All supported releases.
Component : IDMS/DB

Cause

The 598510 message means that IDMSDBAN has determined that the last record on the page (i.e. the one with the highest line index) has been physically deleted, and that this should not happen.

PDR stands for "physically deleted record".

 

Resolution

When using the FIX PAGE utility to repair a corrupt database, it is common practice to make a record occurrence invisible to IDMS by "zeroing out its line index". What this means is to use FIX PAGE to set the eight-byte line index of the record to binary zeroes. This is not an ideal practice. It means that the space available value for the page will now be incorrect. However, in the short term, it can serve the purpose of correcting the problem. A REORG or an unload/reload should be run at the earliest opportunity in order to make the space available value for the page correct again.

Another potential problem with this method can occur if the record you are trying to make invisible is the last record on the page - the one at the highest line index. To determine where the highest line index is, IDMS uses the LINE SPACE COUNT, which is in the fourth last halfword from the end of the page - i.e. the halfword at the 7th and 8th bytes from the bottom.

If you zero out the line index of the last record on the page without also adjusting the LINE SPACE COUNT to reflect that change, IDMSDBAN will issue the 598510 message.

For example, a PRINT PAGE of page 75002 shows this at the bottom:

000B00   00000000 00000000 00000000 00000000    *................*
000B10   --SAME--                                                 
001080   00000000 00080820 02F8000C 00080030    *.........8......*
001090   056C000C 0008059C 0284000C 00070010    *.%.....æ.d......*
0010A0   00200010 00010004 000C0008 00300001    *................*
0010B0   000124FA                               *....*            

The highlighted 0030 (decimal 48) is the LINE SPACE COUNT.
It represents the number of bytes taken up by the footer and the line indexes at the bottom of the page (the shaded area).

The following FIX PAGE will zero out the last line index:

FIX PAGE 75002
VER 1084 0008,0820,02F8,000C
REP 1084 0000,0000,0000,0000;

and leave the page looking like this:

000B00   00000000 00000000 00000000 00000000    *................*
000B10   --SAME--                                                 
001080   00000000 00000000 00000000 00080030    *................*
001090   056C000C 0008059C 0284000C 00070010    *.%.....æ.d......*
0010A0   00200010 00010004 000C0008 00300001    *................*
0010B0   000124FA                               *....*            

but result in this message from IDMSDBAN:

598510 - DBKEY       0/75002:4    LAST LINE INDEX IS FOR PDR

By also reducing the LINE SPACE COUNT with this:

FIX PAGE 75002
VER 10AC 0030
REP 10AC 0028; 

IDMSDBAN no longer produces the 598510 message.

Note: Running REORG or unload/reload as described above will also resolve the 598510 problem. But the FIX PAGE to resolve it is relatively obvious and simple so it is described here. The FIX PAGE to adjust the space available count is not so simple.

In summary, from a purely technical point of view, all the 598510 message means is that IDMSDBAN has determined that the line index for what it thinks is the last record on the page is binary zeroes. What is described in this document is the most common example of how it got that way, and how to resolve it.

 

Additional Information

Database Pages