Microsoft KB Archive/288265

= PRB: Virtual Deadlock When You Call Pooled Component from Queued Component =

Article ID: 288265

Article Last Modified on 12/5/2007

-

APPLIES TO


 * Microsoft COM+ 1.0
 * Microsoft COM+ 1.5

-



This article was previously published under Q288265



SYMPTOMS
When you call a pooled COM+ component from a queued COM+ component, you may encounter a deadlock.



CAUSE
In a full-queue situation, a queued COM+ application starts as many as 16 multithreaded apartment (MTA) threads to dequeue messages and compete for server objects to activate. If too few pooled objects exist, the pooled objects compete for an object out of an object pool with very few members. This can lead to a virtual deadlock.

Because messages are transactionally dequeued, transactions time out, and messages are placed in the retry queues and tried again later.



RESOLUTION
In such scenarios, you should keep at least 16 pooled components in the pool to avoid the possibility of a deadlock.



STATUS
This behavior is by design.

Additional query words: CO_E_ACTIVATIONFAILED_TIMEOUT

Keywords: kbcomplusqc kbprb KB288265

-

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

© Microsoft Corporation. All rights reserved.