private static TcpPackage WrapTransactionCommitCompleted(ClientMessage.TransactionCommitCompleted msg) { var dto = new TcpClientMessageDto.TransactionCommitCompleted(msg.TransactionId, (TcpClientMessageDto.OperationResult)msg.Result, msg.Message, msg.FirstEventNumber, msg.LastEventNumber, msg.PreparePosition, msg.CommitPosition); return(new TcpPackage(TcpCommand.TransactionCommitCompleted, msg.CorrelationId, dto.Serialize())); }
protected override void CompleteSuccessRequest(Guid correlationId, string eventStreamId, int startEventNumber) { base.CompleteSuccessRequest(correlationId, eventStreamId, startEventNumber); var responseMsg = new ClientMessage.TransactionCommitCompleted(correlationId, _preparePos, OperationErrorCode.Success, null); _responseEnvelope.ReplyWith(responseMsg); }
protected override void CompleteFailedRequest(Guid correlationId, string eventStreamId, OperationErrorCode errorCode, string error) { base.CompleteFailedRequest(correlationId, eventStreamId, errorCode, error); var responseMsg = new ClientMessage.TransactionCommitCompleted(correlationId, _preparePos, errorCode, error); _responseEnvelope.ReplyWith(responseMsg); }
protected override void CompleteSuccessRequest(int firstEventNumber, int lastEventNumber, long preparePosition, long commitPosition) { base.CompleteSuccessRequest(firstEventNumber, lastEventNumber, preparePosition, commitPosition); var responseMsg = new ClientMessage.TransactionCommitCompleted(ClientCorrId, _transactionId, firstEventNumber, lastEventNumber, preparePosition, commitPosition); ResponseEnvelope.ReplyWith(responseMsg); }
protected override void CompleteFailedRequest(OperationResult result, string error) { base.CompleteFailedRequest(result, error); var responseMsg = new ClientMessage.TransactionCommitCompleted(ClientCorrId, _transactionId, result, error); ResponseEnvelope.ReplyWith(responseMsg); }
protected override void CompleteSuccessRequest(int firstEventNumber) { base.CompleteSuccessRequest(firstEventNumber); var responseMsg = new ClientMessage.TransactionCommitCompleted(ClientCorrId, TransactionPosition, OperationResult.Success, null); ResponseEnvelope.ReplyWith(responseMsg); }
public InspectionResult InspectPackage(TcpPackage package) { try { if (package.Command == TcpCommand.DeniedToRoute) { var route = package.Data.Deserialize <ClientMessage.DeniedToRoute>(); return(new InspectionResult(InspectionDecision.Reconnect, data: new EndpointsPair(route.ExternalTcpEndPoint, route.ExternalHttpEndPoint))); } if (package.Command != TcpCommand.TransactionCommitCompleted) { return(new InspectionResult(InspectionDecision.NotifyError, new CommandNotExpectedException(TcpCommand.TransactionCommitCompleted.ToString(), package.Command.ToString()))); } var data = package.Data; var dto = data.Deserialize <ClientMessage.TransactionCommitCompleted>(); _result = dto; switch ((OperationErrorCode)dto.ErrorCode) { case OperationErrorCode.Success: return(new InspectionResult(InspectionDecision.Succeed)); case OperationErrorCode.PrepareTimeout: case OperationErrorCode.CommitTimeout: case OperationErrorCode.ForwardTimeout: return(new InspectionResult(InspectionDecision.Retry)); case OperationErrorCode.WrongExpectedVersion: var err = string.Format("Commit transaction failed due to WrongExpectedVersion. Stream: {0}, TransactionID: {1}, CorrID: {2}.", _stream, _transactionId, CorrelationId); return(new InspectionResult(InspectionDecision.NotifyError, new WrongExpectedVersionException(err))); case OperationErrorCode.StreamDeleted: return(new InspectionResult(InspectionDecision.NotifyError, new StreamDeletedException(_stream))); case OperationErrorCode.InvalidTransaction: return(new InspectionResult(InspectionDecision.NotifyError, new InvalidTransactionException())); default: throw new ArgumentOutOfRangeException(); } } catch (Exception e) { return(new InspectionResult(InspectionDecision.NotifyError, e)); } }
private void HandleAsNonMaster(ClientMessage.TransactionCommit message) { if (message.RequireMaster) { DenyRequestBecauseNotMaster(message.CorrelationId, message.Envelope); return; } var timeoutMessage = new ClientMessage.TransactionCommitCompleted( message.CorrelationId, message.TransactionId, OperationResult.ForwardTimeout, "Forwarding timeout"); ForwardRequest(message, timeoutMessage); }
private void CompleteFailedRequest(Guid correlationId, string eventStreamId, OperationErrorCode errorCode, string error) { Debug.Assert(errorCode != OperationErrorCode.Success); _completed = true; _bus.Publish(new ReplicationMessage.RequestCompleted(correlationId, false)); switch (_requestType) { case RequestType.CreateStream: { var responseMsg = new ClientMessage.CreateStreamCompleted(correlationId, eventStreamId, errorCode, error); _responseEnvelope.ReplyWith(responseMsg); break; } case RequestType.Write: { var responseMsg = new ClientMessage.WriteEventsCompleted( correlationId, eventStreamId, errorCode, error); _responseEnvelope.ReplyWith(responseMsg); break; } case RequestType.DeleteStream: { var responseMsg = new ClientMessage.DeleteStreamCompleted( correlationId, eventStreamId, errorCode, error); _responseEnvelope.ReplyWith(responseMsg); break; } case RequestType.TransactionCommit: { var responseMsg = new ClientMessage.TransactionCommitCompleted( correlationId, _preparePos, errorCode, error); _responseEnvelope.ReplyWith(responseMsg); break; } default: throw new ArgumentOutOfRangeException(); } }
private static TcpPackage WrapTransactionCommitCompleted(ClientMessage.TransactionCommitCompleted msg) { var dto = new ClientMessageDto.TransactionCommitCompleted(msg.CorrelationId, msg.TransactionId, msg.ErrorCode, msg.Error); return(new TcpPackage(TcpCommand.TransactionCommitCompleted, msg.CorrelationId, dto.Serialize())); }
public void Handle(ClientMessage.TransactionCommitCompleted message) { _forwardingProxy.TryForwardReply(message.CorrelationId, message, (clientCorrId, m) => m.WithCorrelationId(clientCorrId)); }
private static TcpPackage WrapTransactionCommitCompleted(ClientMessage.TransactionCommitCompleted msg) { var dto = new TcpClientMessageDto.TransactionCommitCompleted(msg.TransactionId, (TcpClientMessageDto.OperationResult)msg.Result, msg.Message); return(new TcpPackage(TcpCommand.TransactionCommitCompleted, msg.CorrelationId, dto.Serialize())); }