SHARE Unusable when a Network Node Crashes

ID Number: Q35860

3.x 4.00

MS-DOS

Question:

We are writing a multiuser product that runs under MS-DOS on a network

environment. File locking is implemented using the MS-DOS SHARE

command. Our customers have found, however, that if one of the nodes

on the network crashes, the DOS SHARE table is not cleared, meaning

that files/records are locked. Is there any way to clear the MS-DOS

SHARE table WITHOUT bringing down the entire network and rebooting the

server machine?

Response:

Networks are supposed to have "keep alives." When a node crashes, the

server is told that the keep alive has died and the connection is

gone. At this point, the server cleans up after it. There is often a

time delay involved here, but it shouldn't be any longer than ten

seconds. Some less-than-robust networks don't have this service, and

thus this "automatic" cleanup is impossible.

The IBM PC NET and Microsoft MS NET servers have a submenu on the

server services screen that lets you close an open file. If you close

an open file that is locked, all of the stations that are hooked up to

this file will receive invalid handle errors. To correct this problem,

these workstations merely have to close their current handle, then

reopen it. This is one of the things the NET FILE command does. Later

versions of the Microsoft MS NET Server may add the ability to

invalidate only those file opens for a particular connection. This is

a better way of getting around a crashed workstation than rebooting

the server. Consult your network server documentation for more

information on this.

Unfortunately, there is no way to perform this service from a remote

workstation, nor is there a system call or API for performing this on

the server in an application. The only way in which this service can

be obtained is from the network server software.