@@ -180,11 +180,12 @@ public AcquireConnectionHelper(ExclusiveConnectionPool pool)
180
180
181
181
public IConnectionHandle AcquireConnection ( CancellationToken cancellationToken )
182
182
{
183
+ Stopwatch stopwatch = new ( ) ;
183
184
try
184
185
{
185
186
StartCheckingOut ( ) ;
186
187
187
- var stopwatch = Stopwatch . StartNew ( ) ;
188
+ stopwatch . Start ( ) ;
188
189
_poolQueueWaitResult = _pool . _maxConnectionsQueue . WaitSignaled ( _timeout , cancellationToken ) ;
189
190
190
191
if ( _poolQueueWaitResult == SemaphoreSlimSignalable . SemaphoreWaitResult . Entered )
@@ -205,18 +206,20 @@ public IConnectionHandle AcquireConnection(CancellationToken cancellationToken)
205
206
}
206
207
catch ( Exception ex )
207
208
{
208
- HandleException ( ex ) ;
209
+ stopwatch . Stop ( ) ;
210
+ HandleException ( ex , stopwatch . Elapsed ) ;
209
211
throw ;
210
212
}
211
213
}
212
214
213
215
public async Task < IConnectionHandle > AcquireConnectionAsync ( CancellationToken cancellationToken )
214
216
{
217
+ Stopwatch stopwatch = new ( ) ;
215
218
try
216
219
{
217
220
StartCheckingOut ( ) ;
218
221
219
- var stopwatch = Stopwatch . StartNew ( ) ;
222
+ stopwatch . Start ( ) ;
220
223
_poolQueueWaitResult = await _pool . _maxConnectionsQueue . WaitSignaledAsync ( _timeout , cancellationToken ) . ConfigureAwait ( false ) ;
221
224
222
225
if ( _poolQueueWaitResult == SemaphoreSlimSignalable . SemaphoreWaitResult . Entered )
@@ -237,7 +240,8 @@ public async Task<IConnectionHandle> AcquireConnectionAsync(CancellationToken ca
237
240
}
238
241
catch ( Exception ex )
239
242
{
240
- HandleException ( ex ) ;
243
+ stopwatch . Stop ( ) ;
244
+ HandleException ( ex , stopwatch . Elapsed ) ;
241
245
throw ;
242
246
}
243
247
}
@@ -328,7 +332,7 @@ private Exception CreateException(Stopwatch stopwatch) =>
328
332
_ => new InvalidOperationException ( $ "Invalid { _poolQueueWaitResult } .")
329
333
} ;
330
334
331
- private void HandleException ( Exception ex )
335
+ private void HandleException ( Exception ex , TimeSpan elapsedTime )
332
336
{
333
337
var reason = ex switch
334
338
{
@@ -337,7 +341,7 @@ private void HandleException(Exception ex)
337
341
_ => ConnectionCheckOutFailedReason . ConnectionError
338
342
} ;
339
343
340
- _pool . _eventLogger . LogAndPublish ( new ConnectionPoolCheckingOutConnectionFailedEvent ( _pool . _serverId , ex , EventContext . OperationId , reason ) ) ;
344
+ _pool . _eventLogger . LogAndPublish ( new ConnectionPoolCheckingOutConnectionFailedEvent ( _pool . _serverId , ex , EventContext . OperationId , elapsedTime , reason ) ) ;
341
345
}
342
346
}
343
347
0 commit comments