Microsoft KB Archive/292804

= FIX: Transactions May Not Be Aborted for Some Exceptions =

Article ID: 292804

Article Last Modified on 8/15/2002

-

APPLIES TO


 * Microsoft COM+ 1.0

-



This article was previously published under Q292804



SYMPTOMS
When COM+ handles some exceptions, the transaction may not be aborted. For example, when data is written to a database, a critical section is initialized. Suppose that this initialization fails with a STATUS_NO_MEMORY exception. COM+ handles the exception, but the transaction is not aborted. The data that would have been written under the lock is never written, and COM+ commits inconsistent data.



CAUSE
In Microsoft Transaction Server (MTS), a transaction is aborted regardless of the nature of the exception. However, in COM+, the COM+ context is notified of an exception only if the exception is one of the following exceptions:


 * STATUS_ACCESS_VIOLATION
 * STATUS_DATATYPE_MISALIGNMENT
 * STATUS_POSSIBLE_DEADLOCK
 * STATUS_INSTRUCTION_MISALIGNMENT
 * STATUS_ILLEGAL_INSTRUCTION
 * STATUS_PRIVILEGED_INSTRUCTION
 * STATUS_STACK_OVERFLOW

If the context is not notified, the transaction is not automatically aborted. However, the problem is that the above exceptions do not comprise a comprehensive list of all possible exceptions that may lead to aborting the current transaction, and such a list is not realistically possible.



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

260910 How to Obtain the Latest Windows 2000 Service Pack

This fix is included with the fixes that are described in the following Microsoft Knowledge Base article:

294510 INFO: Post Windows 2000 Service Pack 2 COM+ Rollup Hotfix 10 Is Available

This fix makes COM+ consistent with MTS behavior in the way it handles exceptions; that is, all exceptions cause the transaction to be aborted.



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 Windows 2000 Service Pack 3.



MORE INFORMATION
For additional information about how to obtain a hotfix for Windows 2000 Datacenter Server, click the article number below to view the article in the Microsoft Knowledge Base:

265173 Datacenter Program and Windows 2000 Datacenter Server Product

For additional information on how to install multiple hotfixes with only one reboot, click the article number below to view the article in the Microsoft Knowledge Base:

296861 Use QChain.exe to Install Multiple Hotfixes with One Reboot

For additional information about how to install Windows 2000 and Windows 2000 hotfixes at the same time, click the article number below to view the article in the Microsoft Knowledge Base:

249149 Installing Microsoft Windows 2000 and Windows 2000 Hotfixes

Additional query words: kbIISCom

Keywords: kbbug kbfix kbwin2000presp3fix kbwin2000sp3fix KB292804

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.