Consultor Eletrônico



Kbase P116222: DBRPR utility reporting significant amount of "Can't find block messages"
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   1/12/2009
Status: Verified

SYMPTOM(s):

DBRPR utility reporting significant amount of "Can't find block messages"

Can't find block messages start at block 524288

bad frag message shows negative block-offset

No errors being reported while database is in a multi-user mode.

Users are reading and writing to database without receiving any errors.

The dbanalys option to proutil is not reporting any errors.

The idxfix option to proutil is not reporting any errors.

Hardware has been scanned with no errors.

No file system errors being reported in system logs.

Dump and loaded the database and dbrpr still reporting significant amounts of "Can't find block messages".

Initial Can't find block message for database and recently dumped and loaded database start at block 524288.

Area where the dbrpr is reporting the "Can't find block" messages are greater than 2GB.

FACT(s) (Environment):

Windows
Progress 9.1E
OpenEdge 10.0B
OpenEdge 10.1A
OpenEdge Category: Database

CAUSE:

Bug# OE00128592

CAUSE:

The problem is that in dbrpr, block offset is defined as a 32 bit integer type on Win32. When dbrpr scans an area, if the block offset of the high water block exceeds 2GB, then the integer will overflow.

FIX:

Upgrade to 10.1A02 or 10.1B.

If upgrading is not possible, then contact Progress Technical Support to obtain a temporary fix that can be applied to 9.1E04, 10.0B05 or 10.1A01.

If you do not have immediate access to Technical Support and need to determine if there is corruption in the database, then use the dbtool command to scan your database blocks.

DBRPR is an undocumented and unsupported option to the proutil command. DBRPR has to be ran while the database is offline. Use the dbtool command either offline or online to scan your database blocks to detect block level corruption. To scan a database using the dbtool command do the following:

1. dbtool dbname
2. The following menu will appear:

DATABASE TOOLS MENU - 1.0b
--------------------------
1. SQL Width & Date Scan w/Report Option
2. SQL Width Scan w/Fix Option
3. Record Validation
4. Record Version Validation
5. Read database block(s)
9. Enable/Disable File Logging
Q. Quit
Choice:

3. Select 9 to Enable/Disable File Logging
4. Select 5 to Read Database Block(s)
5. You will be prompted for connection method dialog below:

<connect>: (0=single-user 1=self-service >1=#threads)?

6. Select either 0 or 1 depending upon how you will be connecting to the database for scanning purposes.
7. You will be prompted for RECID or all - Respond accordingly depending upon what you are scanning.
8. You will be prompted for table or all - Respond accordingly depending upon what you are scanning.
9. You will be prompted for area or all - Respond accordingly depending upon what you are scanning.
10. You will then be prompted for display verbose output (0 - 3). 0 should be fine.

When the scan is completed you will see a record count. Any errors will be directed to the dbname.lg (database log) file.