PRB: Visual Basic 6.0 Pipeline Components Stop Running (308690)



The information in this article applies to:

  • Microsoft Commerce Server 2002
  • Microsoft Commerce Server 2000

This article was previously published under Q308690

SYMPTOMS

If you call a pipeline component that is written in Microsoft Visual Basic 6.0, the pipeline component may not run. In addition, the component does not indicate a failure.

If you use pipeline logging, you may see the following log:

WORKING INSTANCE:

PIPELINE:++ component[0x9] about to be called ProgID: PipeLineRepro.Sample
RootObject:       WriteValue        TestValueToSeeInTheLog           VT_EMPTY       __empty__        VT_I2    1          
PIPELINE:-- component [0x9] returned hr: 0x0, IErrorLevel=1 in 0 milliseconds
 
NON-WORKING INSTANCE:

PIPELINE:++ component[0x9] about to be called ProgID: PipeLineRepro.Sample
PIPELINE:-- component [0x9] returned hr: 0x0, IErrorLevel=1 in 0 milliseconds
					

CAUSE

This problem occurs because the Visual Basic Pipeline Component Wizard does not properly set the Retain in Memory project property, and this project property is required.

When you do not select the Unattended Execution and the Retain in Memory check boxes, the Visual Basic runtime unexpectedly unloads custom and run-time dynamic-link libraries (DLLs). This causes the computer to stop responding (crash or hang) under some multithreaded scenarios. Some typical scenarios include:
  • Place the ActiveX DLL in Microsoft COM+ or Microsoft Transaction Server (MTS).
  • Call the ActiveX DLL from Microsoft Active Server Pages (ASP) pages.
NOTE: As in many multithreading issues, the symptoms may only manifest themselves under very specific, transient conditions.

RESOLUTION

To resolve this problem, select the Retain in Memory check box in the Visual Basic project properties, and then recompile the DLL.

REFERENCES

For additional information, click the article numbers below to view the articles in the Microsoft Knowledge Base:

214755 FIX: VB 6 DLL Settings Cause Access Violation During MTS Shutdown

191119 FIX: VB Classes Can Cause IIS to Have Access Violations

243548 INFO: Design Guidelines for VB Components Under ASP

281630 HOWTO: Configure Visual Basic DLL Project Properties to Run in IIS, MTS, or COM+


Modification Type:MajorLast Reviewed:10/22/2003
Keywords:kbprb KB308690