/// <summary> /// Send pending packets /// </summary> /// <returns>SNI error code</returns> private uint SendPendingPackets() { SNIMarsQueuedPacket packet = null; while (true) { lock (this) { if (_sequenceNumber < _sendHighwater) { if (_sendPacketQueue.Count != 0) { packet = _sendPacketQueue.Peek(); uint result = InternalSendAsync(packet.Packet, packet.Callback); if (result != TdsEnums.SNI_SUCCESS && result != TdsEnums.SNI_SUCCESS_IO_PENDING) { return(result); } _sendPacketQueue.Dequeue(); continue; } else { _ackEvent.Set(); } } break; } } return(TdsEnums.SNI_SUCCESS); }
/// <summary> /// Send pending packets /// </summary> /// <returns>SNI error code</returns> private uint SendPendingPackets() { long scopeID = SqlClientEventSource.Log.TrySNIScopeEnterEvent(s_className); SNIMarsQueuedPacket packet = null; try { while (true) { lock (this) { if (_sequenceNumber < _sendHighwater) { if (_sendPacketQueue.Count != 0) { packet = _sendPacketQueue.Peek(); uint result = InternalSendAsync(packet.Packet, packet.Callback); if (result != TdsEnums.SNI_SUCCESS && result != TdsEnums.SNI_SUCCESS_IO_PENDING) { SqlClientEventSource.Log.TrySNITraceEvent(s_className, EventType.ERR, "MARS Session Id {0}, InternalSendAsync result is not SNI_SUCCESS and is not SNI_SUCCESS_IO_PENDING", args0: ConnectionId); return(result); } _sendPacketQueue.Dequeue(); SqlClientEventSource.Log.TrySNITraceEvent(s_className, EventType.INFO, "MARS Session Id {0}, _sendPacketQueue dequeued, count {1}", args0: ConnectionId, args1: _sendPacketQueue?.Count); continue; } else { _ackEvent.Set(); SqlClientEventSource.Log.TrySNITraceEvent(s_className, EventType.INFO, "MARS Session Id {0}, _sendPacketQueue count found {1}, acknowledgment set", args0: ConnectionId, args1: _sendPacketQueue?.Count); } } break; } } return(TdsEnums.SNI_SUCCESS); } finally { SqlClientEventSource.Log.TrySNIScopeLeaveEvent(scopeID); } }
/// <summary> /// Send pending packets /// </summary> /// <returns>SNI error code</returns> private uint SendPendingPackets() { long scopeID = SqlClientEventSource.Log.SNIScopeEnterEvent("<sc.SNI.SNIMarsHandle.SendPendingPackets |SNI|INFO|SCOPE>"); SNIMarsQueuedPacket packet = null; try { while (true) { lock (this) { if (_sequenceNumber < _sendHighwater) { if (_sendPacketQueue.Count != 0) { packet = _sendPacketQueue.Peek(); uint result = InternalSendAsync(packet.Packet, packet.Callback); if (result != TdsEnums.SNI_SUCCESS && result != TdsEnums.SNI_SUCCESS_IO_PENDING) { SqlClientEventSource.Log.SNITraceEvent("<sc.SNI.SNIMarsHandle.SendPendingPackets |SNI|ERR> InternalSendAsync result is not SNI_SUCCESS and is not SNI_SUCCESS_IO_PENDING"); return(result); } _sendPacketQueue.Dequeue(); continue; } else { _ackEvent.Set(); } } break; } } return(TdsEnums.SNI_SUCCESS); } finally { SqlClientEventSource.Log.SNIScopeLeaveEvent(scopeID); } }