Microsoft KB Archive/321539

From BetaArchive Wiki
Knowledge Base


Visual Basic 6.0 Components Fail in a Nonpoolable Pipeline on Multiprocessor Computers

Article ID: 321539

Article Last Modified on 9/27/2005



APPLIES TO

  • Microsoft Commerce Server 2002 Standard Edition
  • Microsoft Commerce Server 2000 Service Pack 2



This article was previously published under Q321539

SYMPTOMS

Microsoft Visual Basic 6.0 single-threaded apartment (STA) components in a nonpoolable pipeline may fail under stress on a multiprocessor computer.

For example, the Direct Mailer Service (DMLService.exe) may fail under the following circumstances:

  • You run Direct Mailer Service on a multiprocessor system. -and-


  • You try to use a Microsoft Commerce Server 2000 pipeline to create an instance of a Visual Basic COM+ component.

In this scenario, the following event is logged in the application event log:

Pipeline Error: Component Execution failed for component[0x7] hr: 0x80004005

ProgID: DMPersonalization.SentStatus

Loading Component DMPersonalization.SentStatus failed because Global Interface Table is unable to provide a valid marshaled interface pointer for the component Automation error Unspecified error

For Commerce Server Web sites that are operating in high isolation mode, the following application event may be logged:

Event Type:Error Event Source:COM+ Event Category:SVC Event ID:4194 Date:8/23/2002 Time:9:22:35 AM User:N/A Computer:ComputerName Description: The system has called a custom component and that component has failed and generated an exception. This indicates a problem with the custom component. Notify the developer of this component that a failure has occurred and provide them with the information below. Component Prog ID: Method Name: IObjectControl::Release Server Application ID: {3D14228D-FBE1-11D0-995D-00C04FD919C1} Server Application Name: IIS Out-Of-Process Pooled Applications The serious nature of this error has caused the process to terminate. Exception: C0000005 Address: 0x779DB6D0 Call Stack: OLEAUT32!VariantClear + 0xA0 COMSVCS + 0x15B40 COMSVCS!Ordinal7 + 0x22E70 + 0x8557564B + 0xFC4DB4B

CAUSE

This problem occurs because of a bug in the pipeline code. This bug causes problems with nonpoolable components under stress.

RESOLUTION

To resolve this problem, obtain the latest service pack for Commerce Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

297216 INFO: How to Obtain the Latest Commerce Server 2000 Service Pack


The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.

   Date         Time   Version      Size    File Name
   --------------------------------------------------------------
   22-May-2002  21:07  4.0.0.3049  155,920  Pipeline.dll
   21-Mar-2002  18:20  1.0.0.2      82,012  Hotfixsetup.exe  
   30-May-2002  21:27                  539  Qfehotfix.ini
   23-May-2002  00:58              108,032  Qfepatch.msp
   23-May-2002  01:00                7,168  Qfeunpatch.msp
                



WORKAROUND

To work around this problem, use Visual Basic components in a pooled pipeline or on a single processor computer.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Commerce Server 2000 Service Pack 3 (SP3).


Additional query words: non-poolable multiproc

Keywords: kbbug kbfix kbcommserv2000sp3fix kbqfe kbcommserv2000presp3fix kbhotfixserver KB321539