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



The information in this article applies to:

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

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.

RESOLUTION

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 "Applies to" section of this article.

Modification Type:MajorLast Reviewed:9/20/2006
Keywords:kbWin2000preSP5fix kbbug kbfix kbQFE kbWin2000preSP4Fix KB331692 kbAudDeveloper