Consultor Eletrônico



Kbase P122959: Message in database log references before image percent of threshold size incorrectly
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   2/17/2009
Status: Verified

SYMPTOM(s):

Message in database log references incorrectly before image size.

BI File size has grown to within 90 percent of the threshold value of <size>. (9240)

promon Activity shows correct current BI Size

The bi filesize has not reached the new threshold value

The bithold value is not below the number of clusters created during proutil -C bigrow

FACT(s) (Environment):

Progress 9.1x
OpenEdge 10.x
OpenEdge Category: Database
All Supported Operating Systems

CAUSE:

This issue is due to a change in version 9.1B, where the calculation was re-constructed in order not to overflow the unsigned integer value:

The bithreshold test is only done when we go to allocate a new bi cluster.
The value that we check against the threshold value the pointer to the end of the used bi space
The value is stored in an unsigned integer (LONG) then multiplied by 0.9 and then the bi blocksize.

Although the message refers to 90%, the calculation is actually at 80% so therefore the earlier warning.

FIX:

If we accept that the code is actually multiplying by 0.8 ie 80% and that this message will be changed at sometime in the future, the remainder of this Solution takes the opportunity to explain the message by way of example:

Assume the threshold is increased at some stage while running a massive tablemove:

$ proquiet dbname bithreshold 85000

Limit: 85,000Mb = 85,000 / 1,024Gb = 83.0078125 GB
100% is therefore 83 GB (rounded)

9240 Message is first triggered at:
85,000Mb * 0.8 = 68,000Mb = 66.40625 GB = 71,303,168,000 Bytes
XREF VERIFIED BY:
On disk: 71,304,140,288 dbname.b1
promon: BI Size 66 GB

The actual message received is:

BI File size has grown to within 90 percent of the threshold value of 83.0 GBytes. (9240)
Note that this message is not reporting the current value of the bi file, but the threshold value as set with either:
-bithold 85000 at database startup or
later increased with the proquiet dbname bithreshold 85000

The value is correctly reported, the value in the message should read 80% not 90%