Microsoft KB Archive/292804

From BetaArchive Wiki
Knowledge Base


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