Article

A database running with -B2 crashes with error (1040)

« Go Back

Information

 
Article Number000078422
EnvironmentProduct: OpenEdge
Version: 11.6.x
OS: All supported platforms
Other: -B2
Question/Problem Description
Database crashes with error 1040 where objects are assigned to the Alternate Buffer Pool at the object level and -B2 is used

PROBKUP online crashes the database with 1040, when db is started with -B2 and PROBKUP does not use private buffers (-Bp)
Online dbanalys, tabanalys, ixanalys crashes the database with 1040, when db is started with -B2 and private buffers (-Bp) are not used
TDE epolicy manage update sessions to encrypt existing data assigned to the Alternate Buffer Pool crashes the database with error 1040 when the database is started with -B2

When -B2 is not used at database startup the database does not crash with error 1040
Steps to Reproduce
Clarifying Information
online PROBKUP succeeds when the database is not started with -B2
online PROBKUP succeeds when the database is started with -B2 and PROBKUP uses private buffers (-Bp)
online dbanalys, tabanalys, ixanalys succeed when the database is not started with -B2
online dbanalys, tabanalys, ixanalys succeed when the database is started with -B2 and private buffers (-Bp) are used
offline probkup and analys succeed
Error Message(1040) SYSTEM ERROR: Not enough database buffers (-B)
Defect/Enhancement NumberDefect PSC00354391, PSC00362535
Cause
A regression was introduced in 11.6.3.0 and 11.5.1.025 by the changes for PSC00346392. Refer to Article: When block requests for specific objects are being made, buffers from the primary buffer pool are being de-queued and added to the alternate buffer pool.  Over time this exhausts the primary buffer pool (-B) and the 1040 error is the result. 
Resolution
Upgrade to OpenEdge 11.7.0, 11.6.4.006, 11.6.3.032 where the buffer pool exhaustion 1040 is avoided by reverting the changes to the picking algorithm for Object Level assignments (PSC00346392)
Workaround
When objects have been assigned to the Alternate Buffer Pool:
  1. When enabling TDE: Start the Database without -B2 in order to run epolicy manage update sessions to encrypt existing data. Once blocks have been encrypted, initialise -B2 online with: proutil -C increaseto -B2 <value>
  2. Once the Alternate Buffer Pool is in use, run online PROBKUP and analysis tools with Private Buffers (-Bp)
  • probkup online dbname <backupvolume> -Bp 64
  • proutil dbname -C dbanalys -Bp 64
Consider increasing the database startup parameter -Bpmax 64 (default). The private buffer pool (-Bp) is an isolated portion of public buffer pool (-B), it is also limited to no more than 25% of the primary buffer pool (-B) value.

Other possible workarounds for the 1040 error:

       1. Monitor the use of B2 according to the steps presented in the article below on how to size, monitor and manage the alternate buffer pool. If more buffers are used than the value specified for the -B2, restart the database as soon as possible to avoid getting 1040.

       2. As a last resort in case 1040 error persists, in terms of a workaround, stop using -B2. It is not necessary to un-assign the objects assigned to B2 but when starting up a database broker do not specify a value for the -B2 parameter.
 
Notes
Attachment 
Last Modified Date1/22/2019 9:43 AM


Feedback
 
Did this article resolve your question/issue?

   

Your feedback is appreciated.

Please tell us how we can make this article more useful. Please provide us a way to contact you, should we need clarification on the feedback provided or if you need further assistance.

Characters Remaining: 1025