Connection pooling
ADO.NET providers deploy a feature called connection pooling which can significantly influence load test accuracy. Whenever only one app domain is used for all Vusers, connection pooling is turned on—.NET Framework keeps the database connections open and tries to reuse them when a new connection is requested. Since many Vusers are executed in the context of a single application domain, they may interfere with one another. Their behavior will not be linear and that may decrease their accuracy.
In the .NET runtime settings, the AppDomain Per Vuser property enables execution of each Vuser in a separate app domain (true by default). This means that there is connection pooling in the scope of each Vuser, but the Vusers do not interfere with one another. This setting provides more accuracy, but lower scalability.
If you disable this option, you need to manually disable connection pooling for the database.
The following table describes how to manually disable connection pooling:
Provider
|
Option
|
---|---|
.NET Framework Data Provider for SQL Server |
"Pooling=false" or "Pooling=no"
|
.NET Framework Data Provider for Oracle |
"Pooling=false" or "Pooling=no"
|
.NET Framework Data Provider for ODBC |
Connection pooling is managed by an ODBC Driver Manager. To enable or disable connection pooling, use the ODBC Data Source Administrator (found in Control Panel or the Administrative Tools folder). The Connection Pooling tab allows you to specify connection pooling parameters for each of the installed ODBC drivers.
|
.NET Framework Data Provider for OLE DB |
"OLE DB Services=-2"
|
Oracle Data Provider for .NET |
"Pooling=false"
|
Adaptive Server Enterprise ADO.NET Data Provider |
"Pooling=False"
|
