public override void OnEvent(MsgRegisterCompletionEvent e) { if (RegisterParticipantFailureRecord.ShouldTrace) { RegisterParticipantFailureRecord.Trace(e.Completion.EnlistmentId, e.Completion.Enlistment.RemoteTransactionId, ControlProtocol.Completion, e.ParticipantService, Microsoft.Transactions.SR.GetString("RegisterCompletionFailureDuplicate"), base.state.ProtocolVersion); } base.state.RegistrationCoordinator.SendFault(e.Result, base.state.Faults.CompletionAlreadyRegistered); }
private void InvalidRegisterCompletionMessage(MsgRegisterCompletionEvent e) { this.TraceInvalidEvent(e, false); this.TryToAbortTransaction(e, e.Completion); if (RegisterParticipantFailureRecord.ShouldTrace) { RegisterParticipantFailureRecord.Trace(e.Completion.EnlistmentId, e.Completion.Enlistment.RemoteTransactionId, ControlProtocol.Completion, e.ParticipantService, Microsoft.Transactions.SR.GetString("RegisterFailureInvalidState", new object[] { e.StateMachine.State.ToString() }), this.state.ProtocolVersion); } this.state.RegistrationCoordinator.SendFault(e.Result, this.state.Faults.InvalidState); }
protected void ProcessTmRegisterResponse(TmRegisterResponseEvent e) { ParticipantEnlistment participant = e.Participant; MsgRegisterEvent sourceEvent = e.SourceEvent; if (e.Status != Status.Success) { Fault fault = this.state.Faults.ParticipantTMRegistrationFailed(e.Status); this.state.RegistrationCoordinator.SendFault(sourceEvent.Result, fault); if (RegisterParticipantFailureRecord.ShouldTrace) { RegisterParticipantFailureRecord.Trace(participant.EnlistmentId, participant.Enlistment.RemoteTransactionId, participant.ControlProtocol, participant.ParticipantProxy.To, Microsoft.Transactions.SR.GetString("PplCreateSubordinateEnlistmentFailed", new object[] { e.Status.ToString() }), this.state.ProtocolVersion); } } else { participant.OnParticipantRegistered(); this.state.RegistrationCoordinator.SendRegisterResponse(participant, sourceEvent.Result, sourceEvent.Protocol, participant.CoordinatorService); if (RegisterParticipantRecord.ShouldTrace) { RegisterParticipantRecord.Trace(participant.EnlistmentId, participant.Enlistment.RemoteTransactionId, participant.ControlProtocol, participant.ParticipantProxy.To, this.state.ProtocolVersion); } } }