FIX: SQL Server Full-Text Population by Using a Single-Threaded Filter DLL or a PDF Filter DLL May Not Succeed (323040)
The information in this article applies to:
- Microsoft SQL Server 2000 (all editions)
This article was previously published under Q323040 BUG #: 357442 (SHILOH_BUGS) IMPORTANT: This article contains information about modifying the registry.
Before you modify the registry, make sure to back it up and make sure that you
understand how to restore the registry if a problem occurs. For information
about how to back up, restore, and edit the registry, click the following
article number to view the article in the Microsoft Knowledge Base: 256986 Description of the Microsoft Windows Registry
SYMPTOMS SQL Server permits full-text population of documents that
are stored in the database through filter dynamic link libraries (DLLs) that
can interpret the document file format, and that can expose the data by using
the IFilter interface. Attempts to populate a SQL Server Full Text Search
(FTS) catalog with a single-threaded IFilter DLL may intermittently fail, and various symptoms may occur,
including but not limited to:
This article is only applicable when FTS population is using a
single-threaded filter DLL. (For example, the Adobe PDF IFilter version 5.0 for
.pdf documents.) CAUSE This problem occurs because the SQL Server FTS population
process is multithreaded and because the IFilter DLL is not thread-safe,
populating the catalog from multiple threads at the same time may cause
unpredictable behavior in the filter. RESOLUTION To resolve this problem, obtain the latest
service pack for Microsoft SQL Server 2000. For additional information, click
the following article number to view the article in the Microsoft Knowledge
Base: 290211 INF: How To Obtain the Latest SQL Server 2000 Service Pack WORKAROUNDWARNING: If you use Registry Editor incorrectly, you may cause serious
problems that may require you to reinstall your operating system. Microsoft
cannot guarantee that you can solve problems that result from using Registry
Editor incorrectly. Use Registry Editor at your own
risk. To work around this problem, set the following
registry value to 1 to restrict the gathering process to a single thread: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Search\1.0\Gathering Manager RobotThreadsNumber (REG_DWORD) The default value is 0, which allows multithreaded
access to any filter DLLs. With the registry value set to 1, catalog population
times may increase significantly because the population is restricted to
indexing a single document at a time. This restricted speed is the maximum that
can be expected when you are using a single-threaded IFilter DLL because concurrent access to the DLL is not safe. However,
setting this registry key also restricts the gathering process for any
thread-safe filter DLLs to a single thread, which may slow population times for
document types that do not encounter this problem. STATUSMicrosoft
has confirmed that this is a problem in the Microsoft products that are listed
at the beginning of this article.
This problem was first corrected in Microsoft SQL Server
2000 Service Pack 3.MORE INFORMATIONThe work around that is included in this article and the fix
that is included in SQL Server 2000 Service Pack 3 (SP3) to serialize the gathering process are separate.
SQL Server 2000 SP3 includes a single-threaded filter daemon that loads the PDF and
other single-threaded filters. In previous versions of SQL Server 2000, the single-threaded PDF filter was loaded in a multi-threaded filter daemon,
and the work around serialized the process until a single-threaded filter daemon became available. In SQL Server 2000 SP3, you do not have to modify the registry to correct this problem.
Modification Type: | Major | Last Reviewed: | 1/20/2004 |
---|
Keywords: | kbSQLServ2000sp3fix kbbug kbpending KB323040 |
---|
|