Article ID: 957613 - View products that this article applies to.
On a Windows XP-based computer, when you use the OpenSqlFilestream API or the .NET SqlFilestream class to obtain a file handle for FileStream access in a transaction in Microsoft SQL Server 2008, the transaction may randomly fail to commit. When this problem occurs, one of the following errors is logged in the SQL Server Errorlog file:
This problem occurs because of an error in the Server service. The Server service incorrectly delays closing the file handle. Therefore, SQL Server 2008 cannot perform commit operations.
Hotfix informationA supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, submit a request to Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
PrerequisitesTo apply this hotfix, you must have Windows XP Service Pack 2 or a later service pack installed on the computer. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
(http://support.microsoft.com/kb/322389/ )How to obtain the latest Windows XP service pack
Restart requirementYou must restart the computer after you apply this hotfix.
Hotfix replacement informationThis hotfix does not replace any other hotfixes.
File informationThe English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Windows XP with Service Pack 2, x86-based versions
Collapse this tableExpand this table
Windows XP with Service Pack 3, x86-based versions
Collapse this tableExpand this table
Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
(http://support.microsoft.com/kb/322756/ )How to back up and restore the registry in Windows
Warning This workaround will cause a performance issue when you operating on shared files in the system.
To work around this problem, set the value of the Cachedopenlimit registry entry to 0 , and then restart the Server service. To do this, follow these steps:
Warning When you set the value to 0 , file handles of all the shared files are not cached by the system. This can cause a performance issue when you are accessing shared files in the system.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
955280For more information, click the following article number to view the article in the Microsoft Knowledge Base:
(http://support.microsoft.com/kb/955280/ )When you use a file handle for FileStream access in a SQL Server 2008 transaction, the transaction may randomly fail to commit in Windows Server 2003 or in Windows XP Professional x64 Edition
(http://support.microsoft.com/kb/953263/ )When you use a file handle for FileStream access in a SQL Server 2008 transaction, the transaction may randomly fail to commit in Windows Vista or in Windows Server 2008
When to use the FILESTREAM storageIn SQL Server 2008, binary large object (BLOB) data can be the data of the VARBINARY(MAX) type that stores data in database tables. BLOB data can also be the data of the VARBINARY(MAX) FILESTREAM type that stores the data in the file system. The data size and the data usage determine whether you should use the database storage or the FILESTREAM storage. You should consider using the FILESTREAM storage when the following conditions are true:
For more information, visit the following Microsoft Developer Network (MSDN) Web site: