This article was previously published under Q168250
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 4636 (odbc3)
Microsoft Internet Information Server (IIS) version 3.0 may experiencedegrading performance when there is a bad connection in the ODBC connectionpool and the backend database server for the bad connection is notavailable for connecting.
With connection pooling enabled, whenever IIS users try to connect to thesame backend database server, the ODBC driver manager tests the existingconnection in the pool before reusing the connection. If there is a badconnection in the pool and the backend database server for the badconnection is unavailable, the ODBC driver manager keeps testing the badconnection, and IIS essentially creates a thread for each attemptedconnection. The testing connection process takes time, and the IIS threadsare also being generated continuously, which causes the performance todegrade.
Microsoft has confirmed this to be a problem in Microsoft Open DatabaseConnectivity version 3.0. This problem has been corrected in U.S. ServicePack 1 for Microsoft Open Database Connectivity, version 3.0. For moreinformation, contact your primary support provider.
A new registry key and ODBC API have been introduced to avoid testing theconnection continuously. The new registry key is under:
The Retry Wait registry key is a value of REG_SZ and the default value is120 (in second). The value for the Retry Wait registry key can be set bycalling ODBCSetTryWaitValue ODBC API. The ODBCSetTryWaitValue API takes aDWORD argument.
If there is a bad connection in the pool, the ODBC driver manager willattempt to connect before the connection can be reused for the first time.If the connection still fails, the ODBC driver manager returns the errorand marks the connection with the time. From that point until the RetryWaitvalue expires, the ODBC driver manager returns a failure without testingthe connection.