FIX: Transactions may not be sent when you call the Dispose method of the loaded object (832096)



The information in this article applies to:

  • Microsoft COM+ 1.0, when used with:
    • the operating system: Microsoft Windows 2000
    • Microsoft Enterprise Services (included with the .NET Framework) 1.0
    • Microsoft Common Language Runtime (included with the .NET Framework) 1.0

SYMPTOMS

When you use the Reflection class to dynamically load a Reflection.Assembly object, you may find that the transactions of an object are not committed when the Dispose method of the loaded object is called.

CAUSE

This problem occurs when all the following conditions are true:
  • You dynamically load an Reflection.Assembly class.
  • The ContextUtil.SetComplete method is called before a transaction begins.
  • You use the Dispose method to start the transaction.
This problem occurs because the just-in-time (JIT) compiler does not deliver Deactivate notification when assemblies that are loaded with the Reflection class call the ContextUtil.SetComplete method before they call the Object.Dispose method.

WORKAROUND

To work around this problem, comment out calls to the ContextUtil.SetComplete method before the transaction starts.

RESOLUTION

How to obtain the hotfix

This issue is fixed in the Microsoft Windows 2000 Server COM+ 1.0 Hotfix Package 28. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

828748 FIX: Availability of Windows 2000 Post-Service Pack 4 COM+ 1.0 hotfix rollup package 28

STATUS

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

Modification Type:MinorLast Reviewed:11/8/2004
Keywords:kbWin2000preSP5fix kbHotfixRollup kbbug kbfix kbQFE KB832096 kbAudDeveloper