Microsoft KB Archive/278046

= Setting Callback Method Does Not Work Repeatedly Using DCOM =

Article ID: 278046

Article Last Modified on 2/21/2007

-

APPLIES TO


 * Microsoft Windows 2000 Server
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Professional Edition

-



This article was previously published under Q278046



SYMPTOMS
A program that registers a callback method to a DCOM object may not register a callback method after a restart. The failure response that is returned to the program is E_OUTOFMEMORY.



CAUSE
The remote server saves information about the client when the client initially registers its callback method. On restarting the client, the server can incorrectly attempt to contact the client by using old context information. Typically, if the client is restarted while network connectivity exists with the RPC server, the server becomes aware of this situation and discards the client context. If, however, the client restart occurs when network connectivity is not established (for example, when a RAS client is dropped or the client is physically powered off), the RPC server does not become aware that the client has terminated, which can lead to this problem.



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

The English version of this fix should have the following file attributes or later:   Date        Time    Version        Size     File name --  4/30/2001   08:02p  5.0.2195.3556  427,280   Rpcrt4.dll



WORKAROUND
The RPC program can retry the method that returned the E_OUTOFMEMORY response. This will eventually force the RPC server to discard the improper client context information. It may be necessary to retry the method as many as 40 times.



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.



MORE INFORMATION
For additional information about how to obtain a hotfix for Windows 2000 Datacenter Server, click the article number below to view the article in the Microsoft Knowledge Base:

265173 The Datacenter Program and Windows 2000 Datacenter Server Product

For additional information about how to install multiple hotfixes with only one reboot, click the article number below to view the article in the Microsoft Knowledge Base:

296861 Use QChain.exe to Install Multiple Hotfixes with One Reboot

Examination of the RPC packets reveals that the server attempts to issue an RPC Bind to the client, which is met with an RPC Bind NAK by the client. This in turn causes the original RPC request to the server to be returned as an RPC fault with a status of 0x8007000E.

The packets look similar to:

Client -> Server : MSRPC: c/o RPC Request:     call 0x5  opnum 0x6 context 0x1 hint 0x1BE

Server -> Client : MSRPC: c/o RPC Bind:        UUID 12341234-1234-1234-1234-123412341234 call 0x5  assoc grp 0xA731  xmit 0x16D0 recv 0x16D0

Client -> Server : MSRPC: c/o RPC Bind Nak:    call 0x5  reject reason

(Reason not specified)

Server -> Client : MSRPC: c/o RPC Fault:       call 0x5  context 0x1 status 0x8007000E cancels 0x0

For additional information about how to install Windows 2000 and Windows 2000 hotfixes at the same time, click the article number below to view the article in the Microsoft Knowledge Base:

249149 Installing Microsoft Windows 2000 and Windows 2000 Hotfixes

Additional query words: kbNetworking

Keywords: kbhotfixserver kbqfe kbbug kbfix kbnetwork kbwin2000presp3fix kbwin2000sp3fix KB278046

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.