Configure caching of file information by Novell Client for Windows

  • 7014264
  • 10-Dec-2013
  • 20-Dec-2013

Environment

Novell Client 2 SP3 for Windows (IR5)
Windows 7
Windows 8
Windows Server 2008 R2
Windows Server 2010

Situation

The Novell Client 2 for Windows caches certain file information queried from the server so that they aren't needlessly repeated on the wire.  This is typically very beneficial, because Windows repeatedly queries for many files which never exist, such as DESKTOP.INI, FOLDER.JPG, THUMBS.DB, etc., so caching this "file does not exist" failure status improves performance by not having to go to the wire as many times as the application is actually asking.

However, for certain applications, this behavior actually decreases performance, such as when applications are polling the server for newly created files which may be created by a related server-side process. In these cases, the Novell Client won't be polling because it has already determined that the file does not exist. This may result in the application failing to operate properly, or running very slowly, since it is relying on finding the file on the file server.

Resolution

Beginning with Novell Client 2 SP3 for Windows (IR5), it is possible to enable a configurable cache for applications which are affected by this problem.

To enable this feature:

1. Create a new DWORD value named "InfoCacheExceptionTimeoutMilliseconds" under HKEY_LOCAL_MACHINE\Software\Novell\Client\Parameters and set the data to number of milliseconds you want to specify for the timeout. If the value is created but no timeout is defined, the default value is 1000 (1 second).

2. Create a new REG_MULTI_SZ value named "InfoCacheExceptionProcessList" under HKEY_LOCAL_MACHINE\Software\Novell\Client\Parameters. Populate this value with the names of the applications where the configured timeout is required. Note: If there is a two or more applications with the same name
such as "windows\notepad.exe" and "windows\system32\notepad.exe", both are differentiated if the path is included.

NOTE: Enter the value data (the names of the applications) on separate lines when you are editing the value. After completing the editing, entries will be displayed with a space between them in the Registry Editor window. If you type multiple entries in with a space between them, it will not work properly; they must be typed in on separate lines.

Applications in the InfoCacheExceptionProcessList will use the timeout defined in the InfoCacheExceptionTimeoutMilliseconds value for invalidating the cache.

Applications not in the InfoCacheExceptionProcessList will use the default values of 20 seconds for directory data and 0.75 sec for file size data for invalidating the cache.

Additional Information

When an application requests information about files stored on a Novell file server, the Novell Client maintains a cache of the information returned. The hard-coded data cache timeout for Novell Client 2 SP3 for Windows 7 is 20 seconds for basic information such as file attributes, creation and modification time, and 0.75 seconds for file size information. This shorter timeout reflects server-side file size changes more quickly which can be important to some applications.

When any application attempts to access the file server to obtain file or subdirectory information (using NCP 87,06 or 89,06), the Novell Client checks to see if the application is included in the InfoCacheExceptionProcessList. If so, the Client uses the InfoCacheExceptionTimeoutMilliseconds timeout value to invalidate the cache. If the cache has timed out when a listed application requests file information, the Client is required to retrieve the data anew from the server. As a result, if, for example, the timeout is set to 1 second (1000 milliseconds), it will take no longer than 1 second for the application to learn the current file size or other attribute information. Note: when an application configured in the list requests specifically file size information, the timeout used will be the configured timeout or 0.75 seconds, whichever is less.