Problem:
Using Server Express, when a record is read with lock and within the same process another attempt is made to read the same record, file status code 9/068 will be returned.
This behaviour did not occur in Object Cobol Developer Suite.
This would typically occur where a program reads a record with lock, then calls a sub program. Sub program attempts to read the same record which results in record lock condition. When using Object Cobol this behavior did not occur and file status of '00' is returned.
Resolution:
In order for Server Express to behave like Object Cobol , set the following run time tunable:
Note: The default is different in this tunable.
intra_process_record_locking=FALSE
In the Runtime Configuration Manual under Runtime Tunables :
intra_process_record_locking
Specifies whether the run-time system can share a file and set record locks against a file within a process.
Syntax:
>>-----set intra_process_record_locking=---.-TRUE-.-------------><
-FALSE
Parameters:
TRUE Enables the run-time system to share a file and to set record locks against a file within a process; this occurs if a file is opened more than once in different programs, or if a file is opened in different threads. Closing a shared file only releases the record locks obtained by opening the file.
FALSE The ability to share a file and to set record locks against a file within a process is not defined by this system but by the operating system itself.
Properties:
Default: TRUE
Setting: None
This tunable was not available in Object Cobol Developer Suite.The lock was ignored. Setting it to FALSE makes it work like Object Cobol Developer Suite and will cause no other problems.
Defaulting to TRUE makes it worked as it should have in both products.
#ServerExpress
#COBOL
#netexpress
#RMCOBOL
#AcuCobol



