native dos versus xp dos emulator

native dos versus xp dos emulator

Post by neil woodn » Sun, 06 Mar 2005 20:34:01


win9x runs under native DOS and CLIPPER peer-to-peer networking seems to
work ok in that environment, as long as RLOCK(),UNLOCK,DBCOMMIT() are issued
to cover IO operations.
when XP was developed MICROSOFT used a DOS emulator program to allow DOS
windows to run under NT. this product seems to run very well and even allows
the CLD de *** to run in a DOS window , something that wasn't supported
under WIN9x.
however although I cant prove it I think that the DBCOMMIT() function which
under DOS issues a buffer flush command to force the record to be physically
written from the client computer to the server isn't supported resulting in
data corruption when one uses XP CLIENTS and WIN9x server in a peer-to-peer
networking environment. and the only way to get over this is change the
registry entries on the XP CLIENT to turn off caching.
http://www.yqcomputer.com/

nick ramsey has provided 2 .reg files which will update the XP CLIENT and XP
SERVER to hopefully get over this problem.

BEWARE if you recompile with a 32 bit WINDOWS compiler like xHARBOUR it does
NOT get over this problem. because what I am describing is an OPERATING
SYSTEM issue NOT a COMPILER/PROGRAMMING problem.

this does NOT apply if you are using a database engine or thin client
architecture like CITRIX.
 
 
 

native dos versus xp dos emulator

Post by klas.engwa » Mon, 07 Mar 2005 09:47:38

Neil,


It is supported, but whenever there is a write-behind cache sitting
between the clipper application and the storage media the final result
is subject to the cache settings. In the NT/2k/XP case there are, as
you mentioned, a few registry settings that need to be changed in
order to flush files to disk and solve some other problems in a file
sharing environment.

The solution is to update the registry settings AND to use dbcommit().
One of the two is not enough.


Not only hopefully. This has been discussed here on comp.lang.clipper
hundreds of times through the history of NT class OS versions, and it
is known to work. There are MS Knowledge Base articles describing the
issues and the cures. I believe Nick has links to those on his page.


Correct. This has to do with file sharing. Microsoft uses the term
"old database applications" or something similar. Database engines run
on the server and service all users from one single point, which is
why they are not affected.

Regards,
Klas

-------
klas dot engwall at engwall dot com

http://www.yqcomputer.com/

The LFN Library for Clipper
The LanMan Library for Clipper
The NFPAT1A Timeslice release patch for the Nanforum Toolkit

 
 
 

native dos versus xp dos emulator

Post by neil woodn » Mon, 07 Mar 2005 10:59:22

thank you for your comments Klas if you had to choose to use either a
DATABASE ENGINE or CITRIX for a database application written in CLIPPER and
running on a server, what would you choose
regards, Neil
 
 
 

native dos versus xp dos emulator

Post by neil woodn » Mon, 07 Mar 2005 17:11:35

I have found the following extract from a document on the Microsoft
knowledge base relating to Windows For Workgroups but I assume it is true
for any Peer-To-Peer networking under any Microsoft operating system. This
would suggest that caching is turned of by the operating system on
redirected drives once file locking is initiated in the program. So contrary
to what I wrote initially is it in fact necessary to turn off caching via
the registry in XP to force records to be physically written into the
database?
The network redirector of Windows for Workgroups caches file I/O operations.
The redirector will disable the cache if file locking is enabled, and
therefore even if two applications are sharing files and are being careful
so that there is no file access concurrency, Windows for Workgroups will
still fail to perform the file I/O unless file locking is used. One
application reading from the file will not be reading the latest updates
from the application writing to the file or data will not seem to be written
to disk.
 
 
 

native dos versus xp dos emulator

Post by klas.engwa » Tue, 08 Mar 2005 13:11:09

Neil,


I only have clients with 10-15 users at each location, so plain old
file sharing (with NT servers and reghacks) has worked fine for me.
But if the question came up I would probably take a good look at ADS
because of the simple migration.

BTW, when re-reading what you said yesterday I noticed something I
slipped past then:


My reply was mostly about NT class clients and NT class servers. Using
Win9x as a server is a very dangerous practice, especially when the
clients are from the NT line. So in a case like that the recommended
action is to not do it at all. Win9x and the underlying DOS simply
can't handle it, and sooner or later (probably sooner) it will result
in major data corruption.

If I remember correctly Win9x does not have the license restrictions
that XP has regarding the number of users allowed. So the cheap
customers seem to prefer that solution, judging from many reports here
in the ng. But the practical limitations in Win9x are far below the XP
license limit. If your clients want Win9x as a server you should be
very clear with them that it is not a safe configuration, or you can
be quite sure that they will blame you when it happens.

Regards,
Klas

-------
klas dot engwall at engwall dot com

http://www.yqcomputer.com/

The LFN Library for Clipper
The LanMan Library for Clipper
The NFPAT1A Timeslice release patch for the Nanforum Toolkit