I am having the most fascinating problem with a data base recently.
As you can see from the following code snippet I am doing a DBLOCK,
DBPUT, DBUNLOCK right in sequence. What is interesting is that the
lock fails saying a lock is already in effect, then the put fails
saying there is no lock in effect. If I put an unlock in front of
the lock, the unlock will work fine, but the lock will still fail
saying that a lock is already in effect. I checked the database
name variable, the set name variable, the buffer, tried calling
as intrinsics. I looked in DBUTIL to see if any locks were held
immediatly before and after the call to DBLOCK, and no locks are
in effect. So it seems that the call to DBLOCK is the one that
is having the trouble, but I am damned if I can figure out why.
I have also included a SHOW from DBUTIL. This does the same thing
on 4.0 and 5.0 of the operating system. any suggestions are greatly
appreciated.
TURBOIMAGE ERROR AT $00fa1f24; RETURN STATUS = -135
DBLOCK, MODE 3, ON MESSAGE-D OF BBSDB.PUB.SMGA
DBLOCK CALLED WHEN LOCKS ALREADY IN EFFECT
TURBOIMAGE ERROR AT $00fa4298; RETURN STATUS = -12
DBPUT, MODE 1, ON MESSAGE-D OF BBSDB.PUB.SMGA
DBPUT CALLED WITHOUT COVERING LOCK IN EFFECT
CALL "DBLOCK" USING BBSDB, DS-MESSAGE-D, DB-MODE-3, DB-STATUS-AREA
CALL "DBEXPLAIN" USING DB-STATUS-AREA.
CALL "DBPUT" BBSDB,DS-MESSAGE-D,DB-MODE-1,DB-STATUS-AREA,
DB-LIST-ALL, MESSAGE-D
CALL "DBEXPLAIN" USING DB-STATUS-AREA.
CALL "DBUNLOCK" USING BBSDB,DS-MESSAGE-D, DB-MODE-1, DB-STATUS-AREA.
For database BBSDB
Maintenance word is not present.
Access is enabled.
Autodefer is disabled.
Dumping is disabled.
Rollback recovery is disabled.
Recovery is disabled.
ILR is disabled.
Mustrecover is disabled.
Logging is disabled.
Prefetch is disabled.
Indexing is disabled.
HWMPUT is disabled.
Restart is disabled.
Database has never been stored
Database has been modified since last store date.
Subsystem access is READ/WRITE.
CIUPDATE is disallowed.
Dynamic capacity expansion is not used.
Logid is not present.
XM log set : default XM user log set
for volume set MPEXL_SYSTEM_VOLUME_SET
XM log set type : circular
XM log set size : 32 megabytes
The language is 0 - NATIVE-3000.
Buffer specifications:
75(1/120)
No other users are accessing the database.
>>
|