Workstation/Server file access and file caching

Tech-Archive recommends: Speed Up your PC by fixing your registry

From: Paul S. (S._at_discussions.microsoft.com)
Date: 11/15/04


Date: Mon, 15 Nov 2004 13:43:07 -0800

I was hoping that someone might have an answer for this problem or can direct
me to specific MS KB articles that can help me figure this out. Or maybe some
better search terms to use.

A previous person looked into a similar issue with the affected application
and apparently found some MS KB articles suggesting that the file caching may
be the problem, but I don’t have the article ID’s or titles. The person is no
longer around to ask and my search of the MS KB has not been fruitful.

The issue is with an old Windows 3.1 16-bit application that uses an MS-DOS
style binary database. The application is being rewritten, but I still have
to support this thing in the mean time. In the particular instance where I am
having the problem, the application is being run on a Windows 2000 client
system and accesses the database located on a shared folder on a Windows 2000
server system. The database (file) is accessed through a mapped drive letter.

This application uses the C-Tree low level access functions for all database
file operations. At the lowest level, C-Tree appears to be using the C run
time library file I/O functions.

The operation in question is the recreation of an index file. At some point
in this operation the application acts as if it was not able to create the
index file. I have not been able to reproduce the problem in house. Looking
through the source code the sequence of events appears to be:
See if index exists - access()
Delete existing file – unlink()
Create index file – sopen(SH_DENYWR, ...)
Close index file – fclose() or close()
Open index file - sopen(SH_DENYWR, ...)
Write data – fwrite() or write()

I think this is where the problem is occurring. At the site that is having
the problem there are multiple users using the same database, though not at
the same time. One user can not perform the operation at all. Another user
can get the operation to work, but only by repeating the operation until it
does work (about 5-6 times).

The MS KB article, that the other person found, talked about a situation
with a Windows 2000 client and an NT4 server where there could be a problem
with file caching on the NT4 server. The suggestion was to disable file
caching on the server or put the file on a FAT volume.

On a previous occasion, with a different application, I ran into a file
caching problem where whole records would not be written into a similar
binary type database. That problem involved Novell as the server OS and
Windows on the client system. If file caching was disabled in the client side
network driver, then the problem went away.

Based on the information so far, I’m assuming that the state of the index
file on the server has not caught up with what the application is expecting.
Though that does not seem right, unless some operations have priority over
others?

Thanks for any help.
---Paul



Relevant Pages

  • Re: search engine problems...
    ... > feasable since there are too many articles and the db has gotten too big. ... > The search engine does all of the db and the server cpu goes max. ... Put the articles back into the database and index the database properly. ...
    (alt.php)
  • Re: Sahrepoint Database Problem
    ... on "cannot connect to the configuration database" listed in the KB Articles ... section of the WSS FAQ site ... The Server and sites are running fine. ...
    (microsoft.public.sharepoint.windowsservices)
  • Re: Attaching a database
    ... Have you looked at the several KB articles containing the words ... WSS FAQ at wss.collutions.com ... > Backed up my orignial database and have followed the steps in the KB ... > I am able to add the content database to the virtual server, ...
    (microsoft.public.sharepoint.windowsservices)
  • Re: Communications between different .NET Applications
    ... Does anyone know of any decent on-line articles I can check out on the ... > My desire is to have client versions of my application running on a couple ... > of computers on my LAN and then a server application that helps those ... > instances process the database efficiently. ...
    (microsoft.public.dotnet.languages.csharp)
  • search engine challenge
    ... I'm running a site with +20.000 articles. ... The search engine does all of the db and the server cpu goes max. ... the articles anymore but just this one index file. ...
    (comp.lang.php)