Periodically, we receive the error
message, "DBM-F-AREABUSY, usage of storage area <str>
conflicts with a co-user", when we attempt to ready our
database for CONCURRENT RETRIEVAL. An extensive review of our code
found no cases where any of the areas were readied in an
incompatible mode.
A:
DBMS can return the DBM-F-AREABUSY message on a READY statement even
though compatible ready modes (CONCURRENT RETRIEVAL and CONCURRENT
UPDATE) are being used. This situation can occur when an attempt is
made to ready an area while database recovery is in progress. During
database recovery, all database activity is frozen until the DBR
recovery process has completed. When this situation arises, DBMS
will not wait for the freeze to complete if the lock request is a
NOWAIT lock request. On READY statements, NOWAIT is the default for
area locks requests.
There
are a couple of ways to handle this situation:
Ready
the database with WAIT (READY CONCURRENT RETRIEVAL WAIT). This
will make the process issuing the ready wait for an area lock to
be granted until after a database freeze has completed.
Modify
your programs to trap for this exception, wait a few seconds and
then try to READY the area again.