public override uint ReceiveAsync(ref SNIPacket packet) { long scopeID = SqlClientEventSource.Log.TrySNIScopeEnterEvent("<sc.SNI.SNINpHandle.ReceiveAsync |SNI|SCOPE>"); try { SNIPacket errorPacket; packet = RentPacket(headerSize: 0, dataSize: _bufferSize); try { packet.ReadFromStreamAsync(_stream, _receiveCallback); return(TdsEnums.SNI_SUCCESS_IO_PENDING); } catch (ObjectDisposedException ode) { errorPacket = packet; packet = null; SqlClientEventSource.Log.TrySNITraceEvent("<sc.SNI.SNINpHandle.ReceiveAsync |SNI|ERR> ObjectDisposedException message = {0}.", ode.Message); return(ReportErrorAndReleasePacket(errorPacket, ode)); } catch (IOException ioe) { errorPacket = packet; packet = null; SqlClientEventSource.Log.TrySNITraceEvent("<sc.SNI.SNINpHandle.ReceiveAsync |SNI|ERR> IOException message = {0}.", ioe.Message); return(ReportErrorAndReleasePacket(errorPacket, ioe)); } } finally { SqlClientEventSource.Log.TrySNIScopeLeaveEvent(scopeID); } }
public override uint ReceiveAsync(ref SNIPacket packet) { using (TrySNIEventScope.Create(nameof(SNINpHandle))) { SNIPacket errorPacket; packet = RentPacket(headerSize: 0, dataSize: _bufferSize); try { packet.ReadFromStreamAsync(_stream, _receiveCallback); SqlClientEventSource.Log.TrySNITraceEvent(nameof(SNINpHandle), EventType.INFO, "Connection Id {0}, Rented and read packet asynchronously, dataLeft {1}", args0: _connectionId, args1: packet?.DataLeft); return(TdsEnums.SNI_SUCCESS_IO_PENDING); } catch (ObjectDisposedException ode) { errorPacket = packet; packet = null; SqlClientEventSource.Log.TrySNITraceEvent(nameof(SNINpHandle), EventType.ERR, "Connection Id {0}, ObjectDisposedException occurred: {1}.", args0: _connectionId, args1: ode?.Message); return(ReportErrorAndReleasePacket(errorPacket, ode)); } catch (IOException ioe) { errorPacket = packet; packet = null; SqlClientEventSource.Log.TrySNITraceEvent(nameof(SNINpHandle), EventType.ERR, "Connection Id {0}, IOException occurred: {1}.", args0: _connectionId, args1: ioe?.Message); return(ReportErrorAndReleasePacket(errorPacket, ioe)); } } }
/// <summary> /// Receive a packet asynchronously /// </summary> /// <param name="packet">SNI packet</param> /// <returns>SNI error code</returns> public override uint ReceiveAsync(ref SNIPacket packet) { packet = new SNIPacket(_bufferSize); try { packet.ReadFromStreamAsync(_stream, _receiveCallback); return(TdsEnums.SNI_SUCCESS_IO_PENDING); } catch (Exception e) when(e is ObjectDisposedException || e is SocketException || e is IOException) { return(ReportErrorAndReleasePacket(packet, e)); } }
/// <summary> /// Receive a packet asynchronously /// </summary> /// <param name="packet">SNI packet</param> /// <returns>SNI error code</returns> public override uint ReceiveAsync(ref SNIPacket packet) { SNIPacket errorPacket; packet = RentPacket(headerSize: 0, dataSize: _bufferSize); try { packet.ReadFromStreamAsync(_stream, _receiveCallback); SqlClientEventSource.Log.TrySNITraceEvent(s_className, EventType.INFO, "Connection Id {0}, Data received from stream asynchronously", args0: _connectionId); return(TdsEnums.SNI_SUCCESS_IO_PENDING); } catch (Exception e) when(e is ObjectDisposedException || e is SocketException || e is IOException) { errorPacket = packet; packet = null; return(ReportErrorAndReleasePacket(errorPacket, e)); } }
public override uint ReceiveAsync(ref SNIPacket packet) { SNIPacket errorPacket; packet = new SNIPacket(headerSize: 0, dataSize: _bufferSize); try { packet.ReadFromStreamAsync(_stream, _receiveCallback); return(TdsEnums.SNI_SUCCESS_IO_PENDING); } catch (ObjectDisposedException ode) { errorPacket = packet; packet = null; return(ReportErrorAndReleasePacket(errorPacket, ode)); } catch (IOException ioe) { errorPacket = packet; packet = null; return(ReportErrorAndReleasePacket(errorPacket, ioe)); } }