INFO: New COM+ Feature: Parallel Firing Time-out Value for Event System (304217)



The information in this article applies to:

  • Microsoft COM+ 1.0

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

SUMMARY

After COM+ hotfix rollup package 14, the COM+ Event system allows you to configure parallel firing time-out value for a specific event class.

MORE INFORMATION

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 enable this feature, follow these steps:
  1. Start Registry Editor (Regedt32.exe).
  2. Locate and click the following key in the registry:

    HKLM\Software\Microsoft\EventSystem

  3. On the Edit menu, click Add Value, and then add the following registry value:

    Value Name: ParallelFiringTimeoutEnabled
    Data Type: REG_DWORD
    Value Data: Default, 0 disables parallel firing time-outs, non-zero enable this feature.

    This registry key is global; that is, it applies to all events that have parallel firing checked and have a corresponding ParallelFiringTimeout value.
  4. You must restart the Event system for this feature to take effect. To restart the Event system, type the following commands at a command prompt:
    1. net stop eventsystem (type yes to stop System Event Notification)
    2. net start eventsystem
    3. net start sens
  5. To set the time-out value for a particular event class, use the following registry setting:

    HKLM\Software\Microsoft\EventSystem\{26c409cc-ae86-11d1-b616-00805fc79216}\EventClasses\event-class-id

    Value Name: ParallelFiringTimeout
    Data Type: REG_DWORD
    Value Data: Default, 0 for no time-out, or non-zero for the milliseconds for the time-out

    where event-class-id is the string form of the CLSID for the event class in question.
  6. Quit Registry Editor.
NOTE: If the global registry key from step 3 is not enabled, the setting for class-specific registry key is ignored.

NOTE: The time-out values will not take affect for serial firing of subscribers.

If a subscription is timed out due to this new feature, an event log, which appears in the following form, is generated in the Application event log:
The COM+ Event System failed to fire the "method-name" method on subscription "subscription-id". The subscriber returned HRESULT 800705B4.
The error code 800705b4 indicates ERROR_TIMEOUT. However, the "ERROR_TIMEOUT" text does not appear in the event log message.

When firing some subscribers that may have network problems, the publisher may stop responding (hang) if the time-out feature is NOT enabled. This new time-out feature is introduced so that the publisher can continue to function normally despite network problems or unresponsive subscribers.

NOTE: The subscribe/unsubscribe process may still need to wait for remote procedure call (RPC) time-out if any remote subscriber cannot be contacted for any reason. This new time-out feature only applies to the invocation of subscribers when the publisher calls an event class method.

Modification Type:MajorLast Reviewed:6/11/2002
Keywords:kbinfo KB304217