Sentry Spelling Checker Engine - Support
You are here: Home > Support > Sentry Spelling Checker Engine
Product: Sentry Spelling Checker Engine Windows SDK
Question: Is it possible to place dictionary files on a common network file server so they can shared by all users?
Answer: Yes. If you are using the Sentry Windows SDK, just set MainLexPath to the drive/server and path containing the dictionaries:
If you are calling SSCE_OpenLex directly, pass the full path name of the dictionary file on the server.
We do not recommend sharing editable user dictionaries, however. If all users share an updateable dictionary, one user can compromise the effectiveness of the spell checker for all users by adding a misspelled word. We recommend that each user have his or her own user dictionaries. If you want to have a common dictionary containing site-specific words, add it to MainLexFiles like this:
and have an adminsitrator carefully update it as needed.
The Sentry engine does not itself support shared, updateable dictionaries. Specifically, it does nothing to support concurrent writing to dictionaries. When a dictionary file is written, it is not locked by the Sentry engine. Therefore, if multiple applications attempt to write to the same dictionary file at the same time, the success will be determined by the rules of the underlying operating system (Windows in this case). Windows prohibits a file from being opened when another application already has it open for writing, so the second instance of the Sentry engine returns an error code (usually -23, SSCE_FILE_WRITE_ERR) when it attempts to open the dictionary file.
The Sentry engine holds the contents of text-format dictionaries (.tlx files) in memory. When the dictionary is first loaded, the file is opened only long enough to read its contents, then the file is closed. When the dictionary is updated, the file is opened for writing, its contents are written, then it is closed.
Note that the performance of the spelling engine may be impacted when dictionary files are accessed across a network. Performance degredation is caused by network bandwidth, congestion, and operating-system issues. If you have Sentry Windows SDK version 5.14.11 or later, you can improve dictionary-opening performance by defining the "MemBudget" property in the system registry (HKEY_CURRENT_USER\Software\Wintertree\SSCE by default) or [SSCE User] section of the INI file used by the Sentry engine. If your application uses the system registry, MemBudget should be defined as a DWORD value set to ffffffff (hexadecimal)
MemBudget = ffffffff
If your application uses an INI file, MemBudget should be set to -1:
Copyright © 2015 Wintertree Software Inc.