BUG: Yield Problems with Win16 Multiprotocol Net-LibraryID: Q152060
|
The Windows 3.1 version of Multiprotocol Net-Library DLL (that is, DBMSRPC3.DLL) incorrectly allows user inputs (mouse or keyboard) to the application while yielding to Windows during the RPC operations. This behavior allows users to issue other commands (menu or dialog) to the same running SQL Server application while the application is waiting for server to respond. Such commands can cause unexpected behavior such as dead DBProcesses to both existing connections and new connections.
Microsoft has confirmed this to be a problem in Microsoft SQL Server version 6.5 and 6.0. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.
DBMSRPC3.DLL calls RPCWinSetYieldInfo() with "standard yielding" option to
yield to Windows during RPC operations to avoid blocking the entire Windows
and other applications (that is, cooperative multitasking). This mechanism
is supposed to cause the RPC run-time library to provide a standard modal
dialog box that includes a single push-button control with an IDCANCEL ID.
The dialog box prevents direct user input, such as mouse and keyboard
events, from being sent to the application.
However, when the standard "Remote Procedure Call in progress" message box
is displayed, DBMSRPC3.DLL still allows users to interact with the
application using the mouse. For example, using the sqltest3 sample, you
can go back to the application and select from the Connect menu and try to
make another connection, while the message still indicates the RPC
operation is in progress. Depending on what you do to the application, the
result can be very different. Typically, the command will fail, and cause
the entire application to either GP-fault or return other fatal errors.
Additional query words: RPC netlib
Keywords : kbbug6.50 kbbug6.00
Version : 6.0 6.5
Platform : WINDOWS
Issue type :
Last Reviewed: March 27, 1999