How to debug full-text search when a 7608 (0x80004005) error message occurs in SQL Server (295772)



The information in this article applies to:

  • Microsoft SQL Server 2000 (all editions)
  • Microsoft SQL Server 7.0

This article was previously published under Q295772

SUMMARY

This article contains a brief description about the interaction between SQL Server and MSSearch. This article also describes how to set up full-text search, common resolutions you can use for the 7608 error message, and how to debug full-text search when a 7608 error message occurs.

Note Because there are multiple causes for a 7608 error message, there is no single solution.

MSSearch access control lists

MSSearch maintains the following two access control lists (ACLs):
  • A BuildACL
  • A SearchACL
A typical ACL looks similar to this:

Name              Access
-------           ------------------------
SYSTEM            (Query)(Write)(Control)
Administrators    (Query)(Write)(Control)


BuildACL is used for any administrative work that is associated with full-text search such as creating a catalog, populating a catalog, and others. SearchACL is used for performing any full-text queries against the catalog.

When a change is made to the SQL Server startup account from SQL Server Enterprise Manager (SEM), SEM automatically grants the necessary permissions and grants ACL membership to the account. If, for some reason, the account information in BuildACL or in SearchACL is not synchronized, you may receive the error messages that are described in the "How to set up full-text search on a database" section. For example, if you change the SQL Server startup account from Control Panel, the change may cause the account information to be unsynchronized.
When you run the following code, the sp_fulltext_catalog stored procedure uses the SQL Server startup account to access a Registry key:
sp_fulltext_catalog 'FTC_titles', 'create' 

The Registry key that it accesses is

HKLM\Software\Microsoft\MSSQLServer


The SQL Server startup account must have Administrative credentials for the HKLM\Software\Microsoft\MSSQLServer key and for its subkeys.

When you run the following code, MSSearch spawns a new process. The new process is Mssdmn.exe.
sp_fulltext_catalog 'FTC_titles', 'start_full' 

Mssdmn.exe is the Microsoft Search Daemon. Mssdmn.exe uses the SQL Server startup account, and it checks the MSSearch BuildACL to verify that the appropriate credentials are set up for the startup account.

How to set up full-text search on a database

To set up full-text search on a database, use the following code example.

Note The stored procedures must be run in the exact order that is shown in the code example.

Code example


USE pubs
GO
EXEC sp_fulltext_database 'enable'
GO
EXEC sp_fulltext_catalog 'FTC_titles', 'create'
GO
EXEC sp_fulltext_table titles, 'create', 'FTC_titles', UPKCL_titleidind
GO
EXEC sp_fulltext_column titles, title, 'add'
GO
EXEC sp_fulltext_table titles, 'activate'
GO
EXEC sp_fulltext_catalog 'FTC_titles', 'start_full'
GO

When you run the example code, you may receive an error message that is similar to the following:


Msg 7608, Level 17, State 1, Procedure sp_fulltext_database, Line 37 An unknown full-text failure (80004005) occurred in function EnumCatalogs on full-text catalog ''



You receive this error message while any one of the stored procedures is executing.

The function that is listed in the error message can be something other than "EnumCatalog." The key is error code 80004005. Error code 80004005 corresponds to a generic unknown failure.

Common resolutions for the 7608 error message

Here is a list of methods that you can use to help resolve the 7608 error message.
  • Verify that the following folders are present under the folder where Microsoft SQL Server is installed.

    For a default instance, look for these folders:
    • C:\Program Files\Microsoft SQL Server\MSSQL\FTDATA\ SQLServer\Config
    • C:\Program Files\Microsoft SQL Server\MSSQL\FTDATA\ SQLServer\Projects
    • C:\Program Files\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\GatherLogs

    For a named instance, look for these folders:
    • C:\Program Files\Microsoft SQL Server\MSSQL$InstanceName\FTDATA\SQLServer$InstanceName\Config
    • C:\Program Files\Microsoft SQL Server\MSSQL$InstanceName\FTDATA\SQLServer$InstanceName\Projects
    • C:\Program Files\Microsoft SQL Server\MSSQL$InstanceName\FTDATA\SQLServer$InstanceName\GatherLogs


    For Microsoft SQL Server 7.0, also check the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SQLFTSearch\Setup\Schema Registry key and make sure that its value is set to 1.

    During the process of enabling the database for full-text search, SQL Server tries to copy the Schema.txt file from the folder that is under the SQL Server installation folder to the FTDATA\ SQLServer\Config folder or to the DTDATA\SQLServer$InstanceName\Config folder. If, for some reason, the FTDATA\ SQLServer\Config folder or the DTDATA\SQLServer$InstanceName\Config folder is missing, SQL Server full-text search generates error 800004005.

    Also, make sure that the Schema.txt file in the Config folder is the same file that is in the Binn folder. For example, the Schema.txt file must be a SQL Server MSchema file, not a file from Microsoft Site Server or a file from Microsoft Exchange. If the Schema.txt file is not a SQL Server file, you will not receive any results from a full-text query, and no errors will appear in the Microsoft Windows NT application log.
  • Verify that the account that SQL Server is running has the following credentials:

    • Log On Locally
    • Log On as a Batch
    • Act as part of operating system
    • Access this computer from the Network
    • Log on as service
    • Replace a process level token
    • Act as part of the operating system
    • Increase quotas


  • Verify that you have the BUILTIN\Administrators group or the [NT Authority\System] logon as a member of the sysadmin role in SQL Server. The BUILTIN\Administrators group or the [NT Authority\System] logon must have the master database as the default database and must be a member of the sysadmin fixed server role. This requirement is documented in the following Microsoft Knowledge Base article:

    317746 SQL Server full-text search does not populate catalogs

  • Check the DCOM configuration settings.
  • Use the Dcomcnfg.exe program. To do this, follow these steps:
    1. Run Dcomcnfg.exe.
    2. If you are running Microsoft Windows XP or Microsoft Windows Server 2003, follow these steps:
      1. Click the Component Services node that is under Console Root.
      2. Open the Computers folder.
      3. For the local computer, right-click My Computer, and then click Properties.
      4. For a remote computer, right-click the Computers folder, point to New, and then click Computer.
      5. Type the computer name.
      6. Right-click the computer name, and then click Properties.
    3. Click the Default Properties tab.
    4. Verify that Default Authentication Level is set to Connect.
    5. Verify that Default Impersonation Level is set to Identify.
  • Verify the account security identification number. The SQL Server startup account security identification number (SID) that is in BuildACL and in SearchACL may not be synchronized. To set the account security identification number back to a default value, follow these steps:

    Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall your operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.
    1. Back up, and then delete the following keys under the HKLM\Software\Microsoft\Search\1.0 Registry key:
      ...\Applications\SQLServer\AccessControl

      ...\Gathering Manager\AccessControl

      ...\Gathering Manager\Applications\SQLServer\AccessControl

      ...\SearchService\AccessControl
    2. Start MSSearch under the Local System Account.

      The keys in step a are automatically populated with the default values.
    3. Use SEM to set the SQL Server startup account.



Modification Type:MinorLast Reviewed:1/11/2006
Keywords:kbinfo KB295772 kbAudDeveloper