Outlook stops responding when you perform an action in Corporate/Workgroup mode that takes a long time to complete (248022)



The information in this article applies to:

  • Microsoft Outlook 97, when used with:
    • Microsoft Windows 95
    • Microsoft Windows 98
  • Microsoft Outlook 98, when used with:
    • Microsoft Windows 95
    • Microsoft Windows 98
  • Microsoft Outlook 2000, when used with:
    • Microsoft Windows 95
    • Microsoft Windows 98

This article was previously published under Q248022

SYMPTOMS

When you use Outlook in Corporate/Workgroup mode on a computer that is running Windows 95 or Windows 98 and you are connected to a Microsoft Exchange Server computer, you perform an action in Outlook that requires a long time to complete. For example, you open or send a mail item with a large attachment while you are connected remotely with a 28.8 Kbps modem. While you wait for the action to finish, you switch to other applications. After a while, it becomes difficult to use other applications. Task-switching is very slow, if it occurs at all, and windows do not update in appearance in response to mouse or keyboard input. At times, the Close Program dialog box may not appear when you press CTRL+ALT+DEL.

CAUSE

Outlook, a multi-threaded application, uses the single-threaded apartment (STA) model to synchronize remote procedure calls (RPCs). Under the STA model, in response to an RPC in any thread, the RPC runtime posts a message to the Windows message queue of the main STA thread. The message queue dispatches the message to a hidden RPC window, which handles further processing.

Outlook RPCs are performed synchronously; the client does not perform any other activity while it waits for the RPC to complete; the Outlook message queue does not function, as it is waiting for the DispatchMessage() function to return. Consequently, when Outlook is performing a time-consuming RPC-based activity, such as sending or receiving long messages, the Outlook message queue stops processing all Windows messages.

A small number of user actions cause the Windows 95 or Windows 98 operating system to send a message to multiple application windows. The operating system thread waits until all windows respond to the SendMessage call before resuming. The following activities can result in a SendMessage call to one or more Outlook windows:
  • Opening a dynamic data exchange (DDE)-enabled application (such as any Microsoft Office application).
  • Resizing the taskbar or the system tray.
  • Changing settings in Control Panel for keyboard, mouse, or sound.
If the Outlook message queue is not processing messages, however, the Outlook windows cannot respond to the SendMessage call. As a result, the operating system thread cannot continue, and in turn, the operating system appears unresponsive to user input.

Note that this condition is inherent to the architecture of any Windows 95-based or Windows 98-based application that performs synchronous input/output (I/O) over slow connections.

WORKAROUND

You may employ any of the following suggestions to avoid the problem.
  • Identify and correct any issues that may increase the latency or decrease the reliability of your connection to the Exchange Server computer.
  • Change your configuration. If you only need mail and folders, and do not need Exchange Server functionality such as the calendar, tasks, the journal, and so on, use Outlook in Internet only (IMO) mode instead of in Corporate/Workgroup mode.
  • Change your configuration. Use Outlook on a computer that is running Microsoft Windows NT Workstation instead of Windows 95 or Windows 98. In particular, Outlook 2000 and Microsoft Windows 2000 Professional incorporate several features that optimize remote computing.
  • While Outlook is processing a lengthy attachment, avoid activities that cause broadcast system messages. For example, start other applications before you send a large attachment, not after.
  • Wait for the Outlook RPC-based activity to finish or timeout.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

It is possible that overloading the "RPC Receive Any" thread on an Exchange Server computer may slow the completion of RPCs from Outlook, and in turn, cause Outlook clients to hang. For additional information, click the article number below to view the article in the Microsoft Knowledge Base:

239132 Exchange Clients Appear to Intermittently Hang During Normal Operation

For additional information about how the single-threaded apartment model works, click the article number below to view the article in the Microsoft Knowledge Base:

150777 INFO: Descriptions and Workings of OLE Threading Models


Modification Type:MinorLast Reviewed:7/27/2005
Keywords:kbprb kbstoprespond kbpending KB248022