We are
using an older version of DBMS, and we were trying to use global
buffers. However, after some time has passed, the DBMS monitor would
crash. What is causing the DBMS monitor to die?
A:
Global buffers were
introduced in version 4.3 to reduce I/O by allowing multiple
processes to share data in-memory. Global buffers are allocated out
of system global pages by the DBMS monitor process when a database
is opened (either by the DBO/OPEN command or by the first process
that attaches to the database). When the database is closed, the
monitor process should unmap the global pages it had allocated
during the open.
Under some circumstances, the DBMS monitor process
would fail to release all global pages it had previously allocated.
This resulted in a "memory leak" which could ultimately
cause the database monitor to consume all available global pages.
Once this happens, it would be necessary to shut down the DBMS
monitor in order to free the global pages and resume database
operations. This problem has been fixed in DBMS 4.3a, 5.0, and 5.1a.