FIX: A COMTI component generates an access violation when it receives unbounded recordsets in a Variant variable (812402)



The information in this article applies to:

  • Microsoft Host Integration Server 2000
  • Microsoft Host Integration Server 2000 SP1

SYMPTOMS

When you configure a Microsoft COM Transaction Integrator (COMTI) component to return an unbounded recordset as an output parameter, and the calling program has defined the variable for the parameter as a Variant data type, an access violation occurs. An error message that is similar to the following is logged in the application event log:
Event Type: Error
Event Source: COM+
Event Category: SVC
Event ID: 4194
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:
Server Application ID: {55A2D3E5-C3AF-4D16-A561-DDE08F77B4C9}
Server Application Name: A CedarBank Sample
The serious nature of this error has caused the process to terminate.
Exception: C0000005

Address: 0x0111C9FE 
Call Stack:

tagen!CStateMachObject::ProcessInboundRecordset(long,unsigned int,

        class ATL::CComVariant *,struct tagVARIANT *,

        struct tagEXCEPINFO *,unsigned int *,int &) + 0xFE

tagen!CStateMachObject::Invoke(long,struct tagDISPPARAMS *,

        struct tagVARIANT *,struct tagEXCEPINFO *,unsigned int *,

        int *) + 0x12FA

tagen!CTAGenObject::Invoke(long,struct _GUID const &,unsigned long,

        unsigned short,struct tagDISPPARAMS *,struct tagVARIANT *,

        struct tagEXCEPINFO *,unsigned int *) + 0x332

OLEAUT32!UserEXCEPINFO_free_local + 0x57D

RESOLUTION

Service pack information

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

328152 How to obtain the latest service pack for Host Integration Server 2000

Hotfix information

The English version of this hotfix has the file attributes (or later file attributes) 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
   --------------------------------------------------------------------------
   04-Mar-2003  20:20  5.0.0.900          37,136  Capture.dll
   04-Mar-2003  20:19  5.0.0.900         323,856  Cedrmsgs.dll     
   04-Mar-2003  20:20  5.0.0.900          33,040  Comticontext.dll
   04-Mar-2003  20:19  5.0.0.900         147,728  Convert.dll      
   04-Mar-2003  20:20  5.0.0.900          74,000  Convertprim.dll  
   04-Mar-2003  20:20  5.0.0.900          33,040  Dpl1.dll         
   04-Mar-2003  20:20  5.0.0.900         823,568  Dtcob390.dll     
   04-Mar-2003  20:20  5.0.0.900          37,136  Playback.dll     
   04-Mar-2003  20:19  5.0.0.900          78,096  Readlib.dll      
   04-Mar-2003  20:19  5.0.0.900         123,152  Tadtlb.dll       
   04-Mar-2003  20:20  5.0.0.900         114,960  Tagen.dll        
   04-Mar-2003  20:20  5.0.0.900          78,096  Tranlu62.dll     
   04-Mar-2003  20:20  5.0.0.900         110,864  Trantcp.dll      
   04-Mar-2003  20:20  5.0.0.900          49,424  Turnaround.dll   
   04-Mar-2003  20:21  5.0.0.870         950,272  Componentbuilder.exe  
   24-Feb-2003  23:12                    838,423  Comticb.chm
   25-Feb-2003  17:06                    812,988  Resnapin.chm


				
Note Because of file dependencies, the most recent fix that contains the previous files may also contain additional files.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

This problem was corrected in Microsoft Host Integration Server 2000 Service Pack 2.

MORE INFORMATION

This problem only occurs when you use unbounded recordsets. To work around this problem, define the output variable as an ADODB.Recordset recordset. If the code is written in Microsoft Visual Basic where all variables must be Variant data types, work around this problem by writing a Visual Basic .dll file to make the COMTI call. In this workaround, define the output variable as a recordset, and then make the call by using an exposed method in the Visual Basic .dll file.

Modification Type:MajorLast Reviewed:7/14/2005
Keywords:kbQFE kbfix kbbug KB812402