Monitoring Connections
Problem
You want to monitor the opening and closing of connections and the number of connections in the connection pool while an application is running.
Solution
Use the Windows Performance Monitor and the SQL Profiler to monitor connections and connection pooling. See Recipe 1.15 for more information on connection pooling.
Discussion
The following subsections discuss monitoring connection pooling for SQL Server and ODBC .NET Framework data providers.
SQL Server
You can monitor SQL Server connections and connection pooling using the SQL Server Profiler or the Windows Performance Monitor as described in the following subsections.
1.14.3.1.1 SQL Server Profiler
To use the SQL Server Profiler to monitor connection pooling:
- Start the Profiler using one of the following methods
- From Windows desktop: Start
All Programs Microsoft SQL Server Profiler. - From SQL Enterprise Manager: Tools
SQL Profiler.
- From Windows desktop: Start
- When the SQL Server Profiler appears, select File
New Trace. - Supply connection details and click OK. The Trace Properties dialog box will appear.
- Select the Events tab of the Trace Properties dialog box.
- In the Selected Events list box, ensure that the Audit Login and Audit Logout events appear beneath the Security Audit node. Remove all other events from the list. Click the Run button to start the trace.
- The new Profiler window will display a table containing Audit Login events when connections are established and Audit Logout events when connections are closed.
1.14.3.1.2 Windows Performance Monitor
To use the Windows Performance Monitor to monitor connection pooling:
- Start Performance Monitor by selecting Start
All Programs Administrative Tools Performance. - Add performance counters to monitor connection pooling with one of the following methods:
- Right-click the graph and select Add Counters from the popup menu.
- Click the add button above the graph.
- In the Performance object drop down list, select ".NET CLR Data."
The SQL Server .NET data provider adds performance counters that can tune connection pooling and troubleshoot pooling problems. Table 1-2 describes the counters.
Table 1-2. SQL Server .NET provider performance counters
Counter |
Description |
---|---|
SqlClient: Current # of pooled and nonpooled connections |
Current number of connections, both pooled and non-pooled |
SqlClient: Current # pooled connections |
Current number of pooled connections |
SqlClient: Current # connection pools |
Current number of connection pools |
SqlClient: Peak # pooled connections |
The largest number of connections in all pools since the process started |
SqlClient: Total # failed connects |
The total number of attempts to open a connection that have failed for any reason |
- Select the counters to monitor from the list box and click the Add button. Click the Close button.
ODBC
To enable ODBC performance monitoring:
- Open the ODBC Data Source Administrator in Control Panel
Administrative Tools. - Select the Connection Pooling tab.
- Ensure that the PerfMon Enable checkbox is checked.
- Start Performance Monitor by selecting Start
All Programs Administrative Tools Performance. - Add performance counters to monitor connection pooling with one of the following methods:
- Right-click the graph and select Add Counters from the popup menu.
- Click the add button above the graph.
- In the Performance object drop down list, select ODBC Connection Pooling. Table 1-3 describes the ODBC Connection Pooling counters.
Table 1-3. ODBC connection pooling counters
Counter |
Description |
---|---|
Connections Currently Active |
Number of connections currently used by applications |
Connections Currently Free |
Number of connections in the pool available for requests |
Connections/Sec Hard |
Number of real connections per second |
Connections/Sec Soft |
Number of connections server from the pool per second |
Disconnections/Sec Hard |
Number of real disconnects per second |
Disconnections/Sec Soft |
Number of disconnects from the pool per second |