Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

FIX: A memory leak may occur in the Dllhost.exe process when you use the COMTI Context Array in Host Integration Server 2000


View products that this article applies to.

Symptoms

In Microsoft Host Integration Server 2000, when you use the new Microsoft Component Object Model (COM) Transaction Integrator (COMTI) Context Array, a memory leak may occur in the Dllhost.exe process.

↑ Back to the top


Cause

This problem occurs if multiple WriteContext function calls are made to the same COMTIContext keyword entry for a Context Array variable.

↑ Back to the top


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
   -------------------------------------------------------------
   20-Oct-2004  23:17  5.0.0.1005   37,136  Capture.dll      
   20-Oct-2004  23:17  5.0.0.1005  323,856  Cedrmsgs.dll     
   20-Oct-2004  23:17  5.0.0.1005   33,040  Comticontext.dll  
   20-Oct-2004  23:17  5.0.0.1005   28,944  Comtiperf.dll    
   20-Oct-2004  23:17  5.0.0.1005  147,728  Convert.dll      
   20-Oct-2004  23:17  5.0.0.1005   74,000  Convertprim.dll  
   20-Oct-2004  23:17  5.0.0.1005   33,040  Dpl1.dll   
   20-Oct-2004  23:18  5.0.0.1005  823,568  Dtcob390.dll     
   20-Oct-2004  23:17  5.0.0.1005  311,568  Mobase.dll       
   20-Oct-2004  23:17  5.0.0.1005   37,136  Playback.dll     
   20-Oct-2004  23:17  5.0.0.1005   78,096  Readlib.dll      
   20-Oct-2004  23:17  5.0.0.1005  123,152  Tadtlb.dll       
   20-Oct-2004  23:17  5.0.0.1005  119,056  Tagen.dll  
   20-Oct-2004  23:17  5.0.0.1005   82,192  Tranlu62.dll     
   20-Oct-2004  23:18  5.0.0.1005  114,960  Trantcp.dll      
   20-Oct-2004  23:18  5.0.0.1005   49,424  Turnaround.dll   
   20-Oct-2004  23:16  5.0.0.1005  229,648  Wappc32.dll      
   20-Oct-2004  23:18  5.0.0.870   950,272  Componentbuilder.exe  
   20-Oct-2004  23:18  5.0.0.1005  127,248  Resyncsvc.exe    
   29-Mar-2003  01:15              838,423  Comticb.chm
   29-Mar-2003  01:15              812,988  Resnapin.chm
				
Note Because of file dependencies, the most recent fix that contains these files may also contain additional files.

↑ Back to the top


Workaround

To work around this problem, use the ClearAllContext method or the DeleteContext method to delete the entry from the Context Array. Then, use the WriteContext function to write new entries.

The following Microsoft Visual Basic .NET code example demonstrates how to create the variables and how to use the DeleteContext and ClearAllContext methods.

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
        'Create an instance of the COMTI component.
        Dim objCOMTI As New Context.Test
        'Create an instance of the new Context feature.
        Dim objCntx As New COMTICONTEXTLib.ContextObject
        'Create an array to write the Context data to.
        Dim ContextArray() As Object
        'Create the variables for the data parameters for the method call. 
        Dim sInfo As String = "Info for host"
        Dim dBalance As Decimal = 0.0

        'Write the context values to the context array.
        objCntx.WriteContext("REOverride", "AltREName", ContextArray)
        objCntx.WriteContext("USERID", "UUUUUUUU", ContextArray)
        objCntx.WriteContext("PASSWORD", "PPPPPPPP", ContextArray)

        'Make the COMTI method call or calls. 
        objCOMTI.MakeCall(sInfo, dBalance, ContextArray)

        'Assume that another call is required to a different Remote Environment (RE)
        'by using the same security credentials.

        'To work around the memory leak by using DeleteContext, use this code:
        objCntx.DeleteContext("REOverride", ContextArray) 'This line only deletes the REOverride entry.
        'Enter the new entry for the RE.
        objCntx.WriteContext("REOverride", "NewREName", ContextArray)
        'Make the COMTI method call to the new RE. 
        objCOMTI.MakeCall(sInfo, dBalance, ContextArray)

        'Assume that another call is required to different RE and different Security.
        'To work around the memory leak by using ClearAllContext, use this code:
        objCntx.ClearAllContext(ContextArray) 'This code clears the complete context array.
        'Make the new entries.
        objCntx.WriteContext("REOverride", "OtherREName", ContextArray)
        objCntx.WriteContext("USERID", "MYUSERID", ContextArray)
        objCntx.WriteContext("PASSWORD", "MYPASSWD", ContextArray)
        'Make the COMTI method call by using the new RE and Security information. 
        objCOMTI.MakeCall(sInfo, dBalance, ContextArray)

       

↑ Back to the top


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.

↑ Back to the top


More information

This hotfix examines the Context Array. Then, the hotfix deletes duplicate entries before it writes new entries.

For additional information about using the Context Array, click the following article numbers to view the articles in the Microsoft Knowledge Base:
839038 FIX: New features are available for security credentials and host access in the COM Transaction Integrator for Host Integration Server 2000
810956 FIX: A new feature in the COM Transaction Integrator gives the client program full control over a TRM request and lets the client program process the TRM reply

↑ Back to the top


Keywords: KB888103, kbhotfixserver, kbqfe, kbfix, kbbug

↑ Back to the top

Article Info
Article ID : 888103
Revision : 4
Created on : 6/5/2006
Published on : 6/5/2006
Exists online : False
Views : 341