BUG: The SQL Server VDI Backup and Restore Operations Are Not Successful and the CoCreateInstance Error Occurs (323602)



The information in this article applies to:

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

This article was previously published under Q323602
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


BUG #: 357231 (SHILOH_BUGS)

SYMPTOMS

Backup or restore operations that use the SQL Server Virtual Device Interface (VDI) may not succeed and SQL Server logs one of the following errors in the SQL Server error log:
BackupVirtualDeviceSet::Initialize: CoCreateInstance failure on backup device 'TDPSQL-00000798-0000'. Operating system error -2147467262 (No such interface supported).

-or-

BackupVirtualDeviceSet::Initialize: CoCreateInstance failure on backup device 'TDPSQL-00000036-0000'. Operating system error -2147221163 (Interface not registered).

CAUSE

This problem occurs because a worker thread in SQL Server that was previously initialized in the Component Object Model (COM) has remained in a single-threaded apartment (STA). This worker thread then tries to load the SQL Server VDI. Because the SQL Server VDI is free threaded, it cannot be loaded to an STA, and one of error messages that is listed in the "Symptoms" section occur.

WORKAROUND

WARNING: 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 change the registered threading model for the SQL Server VDI:
  1. Start Registry Editor (Regedt32.exe).
  2. Locate, and then click the following key in the registry:

    HKEY_CLASSES_ROOT\CLSID\{40700425-0080-11d2-851f-00c04fc21759}\InprocServer32

  3. Edit the ThreadingModel value from Free to Both.
  4. Locate, and then click the following key in the registry:

    HKEY_CLASSES_ROOT\CLSID\{b5e7a132-a7bd-11d1-84c2-00c04fc21759}\InprocServer32

  5. Edit the ThreadingModel value from Free to Both.
  6. Quit Registry Editor.
  7. You may have to stop, and then restart SQL Server for the workaround to take affect.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

For more information about how to use the SQL Server VDI, see the "Virtual Backup Device Samples" topic in SQL Server Books Online.

Modification Type:MinorLast Reviewed:12/1/2005
Keywords:kbbug kbpending KB323602