In
OpenEdge 11.6.3, the picking algorithm for
Object Level assignments was improved so that free blocks and master object blocks are added to the proper buffer pool when the primary buffer pool is full.
Since
OpenEdge 11.7.0, 11.6.4.006, 11.6.3.032 these changes were reverted and this caused a regression that exhausts the primary buffer pool (-B) and crashes the database. Refer to Article
A database running with -B2 crashes with error (1040) As a consequence of this investigation, the following enhancements were added and remain in the product:
To facilitate the sizing of -B2:1.
OpenEdge 11.6.3 11.7.0 -
PROUTIL -C viewB2 output includes which storage pool it is assigned, the
size (in blocks) of each object and a total for the Area.
- This sizing includes all blocks associated with each object - including free blocks.
- viewB2 with the -csoutput Option, has this additional data
For example: a "FOR EACH" would not load free blocks, where a DBANALYS report or PROBKUP, without -Bp would load free blocks
Area "Customer/Order Area":8 - Primary Buffer Pool
Object Enablement Size Type Object Name
----------------- -------- ------- ------------
Default 7 Master Area.Control-Object:0
Alternate 1320 Table PUB.Customer:2
Default 104 Table PUB.Order:4
Default 176 Table PUB.Order-Line:5
Default 32 Index PUB.Order.Cust-Order:21
--------
1639
2. In
OpenEdge 11.7 -
PROMON> R&D > 2,3 (activity, buffer pool) is enhanced to provide more detail about the
types of blocks accessed in the buffer pools.
Alternate Buffer Pool
Logical reads 650
Logical writes 0
O/S reads 622
O/S writes 0
Marked to checkpoint 0
Flushed at checkpoint 0
Writes deferred 0
LRU2 skips 0
LRU2 writes 0
APW enqueues 0
>>
Active Blocks 601
Master Blocks 0
Index Blocks 40
Record Blocks 138
Free Blocks 370
Sequence Blocks 0
Area Blocks 4
Object Blocks 9
Object List Blocks 4
Control Blocks 0
<<
Alternate buffer pool hit ratio: 10 %
LRU2 replacement policy enabled.
As a consequence, depending on the size of the Buffer Pool, this leads to delays in PROMON R&D Menus which has been addressed in OpenEdge 11.7.6 as described in Article: