FIX: Transactions May Not Be Aborted for Some Exceptions (292804)
The information in this article applies to:
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.
RESOLUTIONTo 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.
STATUSMicrosoft 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.
Modification Type: | Major | Last Reviewed: | 8/15/2002 |
---|
Keywords: | kbbug kbWin2000PreSP3Fix kbWin2000sp3fix KB292804 |
---|
|