Hello All,
I've been following items of corruption for a long time now, once I thought
I had the answer but then yikes...
This will be a rather lengthy elaboration - so bear with me please:
At a customer site we developed in 92-97 a production planning system, which
then ran on different clients connected to various NW-servers. The BDE apps
(written in delphi and Paradox) ran without any corruption, index failures
for years. One of the apps hasn't been modified since 95, the others since
97. Up until 2001 neither had a crash, then once a year to last years crash
every week, with data-loss, index corruption, validity checks going invalid,
reference links broken etc.
What has changed then, well - they've gone from Novell NW to Windows Server
2000 in 2001, then 2003, we upped the servers to 2003. Clients have been
mixed since 2001 consisting of 95/98/NT4/W2K, until last year when the old
clients was changed to XP Pro and a W2K3 Terminal Server, but one computer
which is a Win98SE, running the legacy paradox app. There is a server farm
of 5 servers all having W2K3SP1.
Another accounting system was run as well, based on MS-Access tables. This
software had frequent crashes of the DB, resulting in leaving Access and
going to SQL-Server - now with no crasches.
OpLocks has always been disabled on the server holding the file-share, but
not on the others. I'll dwell into this a little later.
In repairing the production planning system this time, I'm taking more time
to all the details. So here comes the elaborative thinking which I
desperately need help with:
I excluded all users and ran the app from the terminal server, load tested,
did an odbc-connection and stressed the db. Then with one query, a simple
but big join the system hung. Upon repeated connection tries I couldn't get
the BDE to initialize - simply because the .NET file and the .LCK files
where locked (BDE reported $2A04). Then I investigated the local files, and
found temporary copies of the .LCK files. I beleived I had disabled all
local caching by denying the oplocks from the server, apparently not. The
legacy 16-bit Paradox-app apparently locked me out in conjunction with file
caching. In the stress test I only did reads, not any writes (deliberately)
so the system was unaffected. The only files then working on the share must
have been the two LCK files and the NET file.
Conclusion is that the JET problem we had (accounting system with access db)
and the PDX problem we now have are related, and they must be related to the
change of client speed and in combination with upgrading firstly from Novell
to W2K but especially in upgrading to W2K3 Server.
First of all: Do all clients (W98/W2K/WXP/W2K3TS) obey the oplocks setting
from the server?
(I read somewhere that W2K totally disregards this setting)
Or- do all clients mrxsmb/parameters/OpLocksDisabled need to be set?
ans so - in conjunction with
LanmanWorkStation/parameters/UseOpportunisticLocking =0 ?
Why do I get local temp copies of the LCK files, and how do I Not get them?
Is the cscEnabled flag involved in this?
Below is a mentioning of write caching, should this be disabled and if so
how?
Any hints are welcome,
the obvious that don't need to be answered:
LOCAL SHARE is True,
the BDE is 5.11
SymAvir is set not to scan (DB,LCK,LDB,MB,MDB,PX,TMP,VAL,X??,Y??,REM and
network drives)
The apps have been flawless for years but the OS and HW has changed, HW is
unlikely the fault, OS-settings probably the fault in my opinion. And yes, a
move to a "real" db-server ... is another issue.
My BDE is a bit rusty so I apologize.
Cheers / Peter S. / WorkOrder AB / Sweden
Post by Steven GreenPost by Bill ToddOpportunistic locking is not important but write caching is still an
invitation to corrupt tables if the computer or application crashes.
oplocks *is* an issue, in that it will give you the "table and index"
error if it is not disabled.. this isn't true "corruption", but it *is*
99% of all "my tables are damaged" complaints..
--
Steven Green - Waldorf Maryland USA
Diamond Software Group
http://www.diamondsg.com/main.htm
Paradox Support & Sales - Corel CTech Paradox
---------------------------------------------------
Diamond Sports Gems
http://www.diamondsg.com/gemsmain.htm
Trading Cards and other Sports Memorabilia
---------------------------------------------------