Microsoft KB Archive/331692

= FIX: The COM+ event system may fail when it is configured for parallel firing of subscriptions =

Article ID: 331692

Article Last Modified on 9/20/2006

-

APPLIES TO


 * Microsoft COM+ 1.0, when used with:
 * Microsoft Windows 2000 Standard Edition
 * Microsoft Windows 2000 Service Pack 1
 * Microsoft Windows 2000 Service Pack 2
 * Microsoft Windows 2000 Service Pack 3
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Service Pack 1
 * Microsoft Windows 2000 Service Pack 2
 * Microsoft Windows 2000 Service Pack 3
 * Microsoft COM+ 1.0

-



This article was previously published under Q331692





SYMPTOMS
When the Microsoft COM+ event class object is configured for parallel firing of subscriptions, the COM+ event system may fail and the following application event log is generated:

The COM+ Event System failed to fire the greet method on subscription {A15BF286-F191-4F7B-8C64-BFD61034F8F8}-{41E90F3E-56C1-4633-81C3-6E8BAC8B DD70}-{D1CEBA80-0E09-4DE9-85E2-74A9AD03412B}. The subscriber returned HRESULT 80004001. For more information, see Help and Support Center at http://support.microsoft.com. The GUID will be different based on the system experiencing the problem.



CAUSE
When a COM+ event class object is configured for parallel firing of subscribers, a copy of the call stack from the publisher is created for each subscriber. If any interface pointers may be passed as parameters, those interface pointers are not marshalled during the call stack replication. As a result, if the event class object is in a different context than the publisher but the subscriber is in the same context as the publisher, the subscriber will receive a proxy to the object that is passed, instead of a real pointer. As a result, the COM code behaves incorrectly when the subscriber tries to call out through the interface pointer that it was passed. This situation will only occur if the event class object is configured for parallel firing, and only if interface pointers are passed as parameters to the event class object and therefore to the subscriber.



How to Obtain the Hotfix
This issue is fixed in the Microsoft Windows 2000 Server COM+ 1.0 Hotfix Package 24. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

810578 Availability of Windows 2000 Post-Service Pack 3 COM+ Hotfix Rollup Package 24



STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the &quot;Applies to&quot; section of this article.

Additional query words: kbWin2000preSP4COMRollup24Fix

Keywords: kbbug kbfix kbwin2000presp4fix kbqfe kbwin2000presp5fix KB331692

-

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

© Microsoft Corporation. All rights reserved.