FIX: DCOM May Not Release Properly on Multi-Threaded Servers (288299)



The information in this article applies to:

  • Microsoft COM+ 1.0, when used with:
    • the operating system: Microsoft Windows 2000 SP1
    • the operating system: Microsoft Windows 2000 SP2

This article was previously published under Q288299

SYMPTOMS

It is possible that an out-of-process COM server may not disconnect from a connected client. This may cause errors to be returned to the connected client from the COM server. This problem can occur if a COM server has two objects that are created in the COM server's multi-threaded apartment (MTA). This problem usually appears under stress conditions on computers with multiple CPUs. The following three intermittent problems may occur:
  • If the client queries the first object that has a method that returns a pointer to the second object, the reference count of the second object increases and may never return to zero.
  • If a client connects to the COM server and queries the first object for a pointer to the second object, the method call may not work and may generate a "CO_E_OBJNOTCONNECTED (0x800401FD)" error message.
  • If a client queries the second object for an interface, when the client releases that interface, QueryInterface (step 4b) does not work and may generate an "RPC_E_INVALID_OBJECT (0x80010114)" or "CO_E_OBJNOTCONNECTED (0x800401FD)" error message.

CAUSE

This problem can occur if a thread concurrency in the internal marshaling class in OLE32 causes a race condition. If this occurs, the server object may not always disconnect from a client object.

RESOLUTION

To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

260910 How to Obtain the Latest Windows 2000 Service Pack

This fix is included with the fixes that are described in the following Microsoft Knowledge Base article:

294510 INFO: Post Windows 2000 Service Pack 2 COM+ Rollup Hotfix 10 Is Available

The English version of this fix should have the following file attributes or later:
   Date       Time     Version         Size       File name 
   -----------------------------------------------------------
   3/29/2001  6:49 PM  2000.02.3476      166,160  Catsrv.dll
   3/29/2001  6:10 PM  2000.02.3476      574,224  Catsrvut.dll
   3/29/2001  6:49 PM  2000.02.3476       96,016  Clbcatex.dll
   3/29/2001  6:49 PM  2000.02.3476      508,688  Clbcatq.dll
   3/29/2001  6:49 PM  2000.02.3476       37,648  Colbact.dll
   3/29/2001  6:49 PM  2000.02.3476      201,488  Comadmin.dll
   3/29/2001  6:10 PM  2000.02.3476    1,416,976  Comsvcs.dll
   3/29/2001  6:49 PM  2000.02.3476      625,936  Comuid.dll
   3/29/2001  5:57 PM                      8,946  Dtcsetup.cat
   3/29/2001  5:57 PM  2000.02.3476      820,376  Dtcsetup.exe
   3/29/2001  6:49 PM  2000.02.3476      234,256  Es.dll
   3/29/2001  6:10 PM  2000.02.3476      681,744  Msdtcprx.dll
   3/29/2001  6:10 PM  2000.02.3476    1,120,528  Msdtctm.dll
   3/29/2001  6:49 PM  2000.02.3476      145,680  Msdtcui.dll
   3/29/2001  6:10 PM  2000.02.3476      151,312  Mtstocom.exe
   3/29/2001  6:49 PM  2000.02.3476       52,496  Mtxclu.dll
   3/29/2001  6:49 PM  2000.02.3476       23,824  Mtxdm.dll
   3/29/2001  6:10 PM  2000.02.3476      104,208  Mtxoci.dll

   3/29/2001  6:49 PM  5.00.2195.3434    940,304  Ole32.dll
   3/29/2001  6:49 PM  5.00.2195.3415    184,592  Rpcss.dll
   3/29/2001  7:20 PM                    370,978  Sp3.cat
   3/29/2001  6:44 PM  2000.02.3476      383,248  Txfaux.dll
				

STATUS

Microsoft 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 Windows 2000 Service Pack 3.

Modification Type:MinorLast Reviewed:9/26/2005
Keywords:kbHotfixServer kbQFE kbbug kbDCOM kbenv kbfix kbWin2000PreSP3Fix kbWin2000sp3fix KB288299