FIX: COM+ Dispenser Manager Does Not Efficiently Reuse Open Enlisted Database Connections (277814)



The information in this article applies to:

  • Microsoft COM+ 1.0, when used with:
    • the operating system: Microsoft Windows 2000

This article was previously published under Q277814

SYMPTOMS

When you use a connection from transactional COM+ components, you may encounter the following symptoms:
  • It appears that connection pooling does not work with Microsoft Transaction Server (MTS) or COM+ because new connections are opened and enlisted in the transaction.
  • Some databases may return errors when multiple connections are enlisted in the same transaction. For example, the Oracle ODBC Driver returns error -2147168246 "Failure enlisting in Resource Manager" when OLE DB Session Pooling uses up all "max_transaction_branches" (where the default value is 8, and the maximum value is 32) on an Oracle server.

CAUSE

When a database connection needs to be allocated in a transactional component, the Dispenser Manager always goes to the list of free connections (the connection pool). As a result, a new connection is enlisted in the transaction even if there are free connections that had been previously enlisted in that transaction.

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


STATUS

Microsoft has confirmed that this is a problem in Microsoft Windows 2000. This problem was first corrected in Windows 2000 Service Pack 2.

MORE INFORMATION

When a transacted component opens a new connection, the Dispenser Manager first goes through the list of connections already associated with that transaction to determine if a connection is free. If the Dispenser Manager finds a free connection, that connection will be reused, otherwise a free connection is taken out of the pool.

Modification Type:MajorLast Reviewed:5/28/2003
Keywords:kbbug kbDatabase kbfix kbQFE kbWin2000PreSP2Fix KB277814