NWLockLogicalRecordSet

Locks all logical records logged in the log table

Local Servers:blocking
Remote Servers:blocking
NetWare Server:3.11, 3.12, 3.2, 4.x, 5.x, 6.x
Platform:NLM, Windows NT, Windows 95, Windows 98
Library:Cross-Platform NetWare Calls (CAL*.*)
Service:Synchronization

Syntax

  #include <nwfile.h> 
  or 
  #include <nwcalls.h> 
   
  N_EXTERN_LIBRARY( NWCCODE )NWLockLogicalRecordSet  ( 
     nuint8    lockFlags,  
     nuint16   timeOut);
  

Delphi Syntax

  uses calwin32 
   
  Function NWLockLogicalRecordSet 
    (lockFlags : nuint8; 
     timeOut : nuint16 
  ) : NWCCODE;
  

Parameters

lockFlags
(IN) Specifies the lock flags.
timeOut
(IN) Specifies the length of time the NetWare server attempts to lock the record set before timing out.

Return Values

These are common return values; see Return Values (NDK: Connection, Message, and NCP Extensions) for more information.

0x0000

SUCCESSFUL

0x89FE

TIMEOUT_FAILURE

0x89FF

LOCK_ERROR

Remarks

Applications define logical record names. A logical record name represents a group of files, physical records, or data structures. NWLogLogicalRecord and NWLockLogicalRecordSet affect one or more logical record names, not the actual files, physical records, or data structures associated with each logical record name. Any uncooperative application can ignore a lock on the logical record name and directly lock physical files or records. Therefore, applications using logical record locks must not simultaneously use other locking techniques.

To avoid deadlock, request the resources needed to lock by making an entry in the File Log Table at the NetWare server. Once the log table is complete, the application attempts to lock those records. The locking works only if all records in the table are available. If some of the logged resources cannot be locked, the lock fails and none of the resources are locked.

A logical record is simply a name (a string) registered with the NetWare server. The name (as with a semaphore) can then be locked or unlocked by applications and can be used as an inter-application locking mechanism.

NOTE:Locking or unlocking a logical record does not physically lock or unlock those resources associated with the logical record; only the applications using the record know about such an association.

lockFlags is interpreted as follows:

  0x00   Lock record with a shareable lock 
  0x01   Lock record with an exclusive loc
  

timeOut is specified in units of 1/18 second (0 = no wait).

NCP Calls

See Also

NWClearLogicalRecord, NWClearLogicalRecordSet, NWLogLogicalRecord, NWReleaseLogicalRecord, NWReleaseLogicalRecordSet