Ted,
I had a similar situation...hope this helps.
Ingredients: a DOS FPro 2.5 app that I wrote in '91 and a Linux/SMB server that I installed in 1998. As long as the workstations were running Windows 98, there were no unusual problems.
Around 2002 I tried setting up a couple of workstations running Win2k with my app (and with the Samba backend) within hours there were corrupted indexes, lost data, locked files...pretty much any problem you can have with DBFs. Note that this all started back in the 2002 time frame. I tried every setting I could think of in Samba. No improvement. So, with approx 23 workstations running Win98, and 2 on Win2k, there were several "shutdowns" for reindexing a day, and a few all-nighters reconstructing data tables from backups.
After a week to 10 days, I "downgraded" those two workstations to Win98 and the problem instantly went away. Oh sure, as always I had to reindex every few days...all the standard DBF headaches...but nothing like when those Win2k workstations were running. Note that through all of this, the hardware never changed, just the OS.
Finally, last year the client insisted on doing whatever it took to move up to Win2k and/or XP as they were tired of rebooting all the time (not my application's fault).
I spent several weeks and rewrote the application (portions) that opened/closed data files. My original design was to open all tables when the application started, and close them when the application shut down...dumb, right, now I know. The rewrite now opens only the necessary DBFs immediately before accessing them and closes them immediately after the read/write. Also predictably, this required some reworking in areas of the application that I didn't expect, but nothing earth shattering; just time consuming.
Anyway, without any further changes to the Samba server, and after deploying 25 workstations on Win2k (again with minimal hardware change), not only are the index and lost data problems completely gone, but I haven't reindexed a table in months...and no complaints of "weirdness" or missing data.
FYI, this is also an inventory control/sales/accounting application.
My conclusion is that Win2k (XP, etc.) doesn't manipulate file handles and data buffers the same way as Win98, and this causes a lot of "hanging chads" type of problems with Samba. I spent, easily, a dozen or so hours reading bug reports and other development stuff in Samba before admitting to myself that I had to rewrite the application to "fix" the problem. And has it ever fixed the problem!
Hope this helps.
Mike Copeland
-------- Original Message -------- Subject: [ProLinux] Samba, oplocks, spinlocks and lock spin time? From: Ted Roche <tedroche AT gmail .D.OT com> To: ProLinux Email List <prolinux@leafe.com> Date: 2/28/2008 2:05 PM > I've got a client using a Samba server to hosts DBFs used in a > multi-user order entry and accounting application. Sometimes things > don't work right. The operators insist "I didn't do anything" but we > know they reboot once in a while and also there seems to be a point in > their application (20-year-old FoxBase code) where the system crashes, > although we are remote and haven't yet got sufficient instrumentation > to figure out all of the details. > > I wanted to make sure I've got the Samba configuration correct for > multi-user locking; there's usually only one developer here in the > office using an app, and we usually all just develop on our own > machines, so the infrequent testing on our in-house Samba shares is > certainly not conclusive. Has anyone found an authoritative reference > that recommends the use of the 'oplock' or 'spinlock' directives in > smb.conf for successful VFP operations? Or know conclusively they are > not needed? It would be good to eliminate this as a possible cause of > their data problems. > > tia. > > A typical programmer likes to blame it on the network, but in this > case I'm the network sysadmin too. > >
©2008 Mike Copeland |