PDA

View Full Version : Oplocks - Yet Again!


John Middleton
09-29-2004, 05:30 AM
There has been some discussion on the Forum, recently, as to whether or not the two Registry entries :-

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Servic es\MRXSmb\Parameters\OplocksDisabled

And the earlier ,

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\LanmanServer\Parameters\EnableOplocks

- do the same thing. (achieve the same result) – so I thought that a little further testing and publication of results might be appropriate.

Many web sites suggest, confusingly, that these are direct substitutes for one another, the only difference being that OplocksDisabled is for latter day Windows O/s.

OplockDisabled only works effectively for DE if Oplocks are disabled on _both_ the server AND the workstation. i.e. the same Registry change is made on each

Whereas with -

EnbleOpLocks appears effective enough if this only done server side.

This last remark only remains true if the mix of workstations O/s’ is simple. e.g. . all Windows 2000 - - - -

Conclusion – they are NOT the same.

Again, reading the vast multiplicity of information with regard to oplocks available on the Web, anyone could be excused for thinking that Oplocks are requested solely by workstations. In practice, it does appear that with only the OplocksDisabled parameter in use, that the Server is capable of conjuring up its own provisional locks, seemingly out of the ether!

And a final remark – DE6.5 (final release patched) running the same application, over the same equipment seems more susceptible to Oplock problems than DE6.1. Does anyone know what network changes were made that would account for this behaviour?

John
ShopEase

Graham Smith
09-29-2004, 10:39 AM
Originally posted by John Middleton:
Again, reading the vast multiplicity of information with regard to oplocks available on the Web, anyone could be excused for thinking that Oplocks are requested solely by workstations. In practice, it does appear that with only the OplocksDisabled parameter in use, that the Server is capable of conjuring up its own provisional locks, seemingly out of the ether!AAAAAAHHHHHH!!!!!!!! <running up an down the hall, waving my arms>
graemlins/boom.gif graemlins/boom.gif graemlins/boom.gif graemlins/boom.gif graemlins/boom.gif graemlins/boom.gif

Graham Smith
09-30-2004, 03:48 AM
John,

OK. I had a chance to drink heavily last night and took a big handful of various pills this morning and am ready to approach this more rationally. I just wish that the giant purple spider on my wall didn't keep staring at me like that, it's very distracting. <sigh>

In a way, I suppose that your latest findings make some kind of sense. If anything that Microsoft does can truely be said to make sense.

The LanmanServer parameter is the older of the two, with entries going back to the time when Microsoft (in partnership with IBM) really had a server product called Lanman (Lan Manager). The newer MRXSmb parameter would appear to be tied into Server Message Blocks, which have only crept into the product in the past few years. I would venture to guess that not all combinations of workstations and servers would use this.

I am still a bit confused regarding your comment the EnableOpLocks only works if "the mix of workstations O/s’ is simple. e.g. . all Windows 2000 - - - -" Can I take this to mean that if all the workstations are Win2K or newer? Reason being that NT workstation and Win9x interact with Win2K server differently.

John Middleton
09-30-2004, 05:37 AM
Graham

It would appear that EnableOplocks may be disabled on the Server only, if all workstations are Windows 2000 / XP, but requires the corresponding entry on the workstation, if Windows NT or 98 are introduced into the workstation mix.

Note that disabling ‘Read Caching’ is just as important / more important for this mixed bag of workstations.

The DE application, which we used for these testing purposes could, loosely, be described as ‘live data processing’ (modifying tables, entering records procedurally etc.) We use this type of application to give instant test results. A nice, slow, leisurely record entry type of application (and perhaps a nightly update run) may well not experience any such difficulties – I don’t wish to paint too black a picture!

John
ShopEase

PeadarKEARNEY
09-30-2004, 10:15 AM
Hi All ,
I have a DataEasE 6.5 patch 1 application running on a Windows 2000 server and windows 2000 professional on 12 clients . The server is a dedicated Dataease server . I still experience resource conflicts within DataEase .The application is 800 mgb's . The registry settings are as follows :
SERVER :
CachedOpenLimit = 0
EnableOpLocks = 0
OpLocksDisabled = 1
Client :
UtilizeNTCaching = 0
UseUnlockBehind = 0
UseOpportunisticLocking = 0
UseLockReadUnlock = 0

Are these settings correct ? I would appreciate any help .

regards

Peadar

Robert Osinski
09-30-2004, 01:13 PM
Peadar,

I think "UseUnlockBehind" should be set to =1.

John Middleton
10-01-2004, 03:27 AM
There is a danger of Oplocks becoming an expedient for all manor of networking / application problems.

If there is a problem with Oplocks there are almost certain to be traceable clues. Start by looking in the Event Log and in particular for Redirector Errors.

Microsoft’s own NetWork Monitor (present on the CD of many MS Server types) can be used to monitor the Oplock Key and, even if the resultant log is mostly too technical for us comprehend, it isn’t difficult to spot a none server response to an open file request.

In Performance Logs monitoring the Avg Queue Length (for disk writes) the typical queue length should be no higher than 3 or 4 items. Or maybe you spot a spike in Current Disk Queue Length, suggesting rapid I/O. If you are sure that these delays are not caused by flaky hardware, then, Oplocks _could_ be a consideration.

Many ‘resource in use’ errors / problems can be attributed to application design – not to Oplocks.


John
ShopEase

blacksmith
10-01-2004, 04:47 AM
I think that if I had to support multitude remote systems based on Win-servers then the most likely way of eliminating the possibility of registry settings not being (or not becoming, e.g. due to human interaction or software upgrading) non-DE-compliant I would write a daily (hourly ?) cron-script for testing necessary registry-key values and - in case of nonconformance - e-mailing the results to the network administrator.

Ths script could be e.g. in Visual Basic:

http://www.windowsdevcenter.com/pub/a/windows/2004/07/27/VB_Registry_Values.html

Perl:

http://www.winnetmag.com/Windows/Article/ArticleID/32/32.html

or some other scripting language.

Then at least I could be sure that the registry settings stay what they were set.

lelio passalacqua
10-01-2004, 05:50 AM
Do we must use Sqlserver ODBC-linked to increase integrity to our multiused DataEase files?
I lost integrity of my data in adding or updating in the same time, the same de6.1-files, by 2 or 3 workstations.
I think that Windows-2k-prof. is less prof. than we need and this demmands another Microsoft tool. Only the Microsoft client-server solution can deal with loss of data integrity under Windows?
Why sqlserver only works with integrity in a win2k-server?

Graham Smith
10-01-2004, 08:50 AM
Switching from a file server database to a SQL database should generally result in improved performance. But if the application is poorly designed, you can have as many or more problems. And unless you have experience in designing SQL apps, you are going to have problems!

If you have had problems with updates using DE6 on a server with just a few users then either something is not set up correctly or something is designed badly or there is a problem on the network.

To put this in perspective, I coming to the opinion that none of these oplock parameters should be added to the server unless there are specific locking problems going on. I just drags everything down.