Example #1
0
        private void OnSendRegisterComplete(CoordinatorEnlistment coordinator, ControlProtocol protocol, IAsyncResult ar)
        {
            SynchronizationEvent event2;
            EndpointAddress      to = null;

            try
            {
                RegisterResponse response = coordinator.RegistrationProxy.EndSendRegister(ar);
                to = response.CoordinatorProtocolService;
                TwoPhaseCommitCoordinatorProxy proxy = this.state.TryCreateTwoPhaseCommitCoordinatorProxy(to);
                if (proxy == null)
                {
                    if (RegistrationCoordinatorResponseInvalidMetadataRecord.ShouldTrace)
                    {
                        RegistrationCoordinatorResponseInvalidMetadataRecord.Trace(coordinator.EnlistmentId, coordinator.SuperiorContext, protocol, to, null, this.state.ProtocolVersion);
                    }
                    event2 = new MsgRegistrationCoordinatorSendFailureEvent(coordinator);
                }
                else
                {
                    try
                    {
                        if (protocol == ControlProtocol.Durable2PC)
                        {
                            event2 = new MsgRegisterDurableResponseEvent(coordinator, response, proxy);
                        }
                        else
                        {
                            VolatileCoordinatorEnlistment asyncState = (VolatileCoordinatorEnlistment)ar.AsyncState;
                            event2 = new MsgRegisterVolatileResponseEvent(asyncState, response, proxy);
                        }
                    }
                    finally
                    {
                        proxy.Release();
                    }
                }
            }
            catch (WsatFaultException exception)
            {
                Microsoft.Transactions.Bridge.DiagnosticUtility.ExceptionUtility.TraceHandledException(exception, TraceEventType.Warning);
                event2 = new MsgRegistrationCoordinatorFaultEvent(coordinator, protocol, exception.Fault);
                if (RegistrationCoordinatorFaultedRecord.ShouldTrace)
                {
                    RegistrationCoordinatorFaultedRecord.Trace(coordinator.EnlistmentId, coordinator.SuperiorContext, protocol, exception.Fault);
                }
            }
            catch (WsatMessagingException exception2)
            {
                Microsoft.Transactions.Bridge.DiagnosticUtility.ExceptionUtility.TraceHandledException(exception2, TraceEventType.Warning);
                this.state.Perf.MessageSendFailureCountPerInterval.Increment();
                if (RegistrationCoordinatorFailedRecord.ShouldTrace)
                {
                    RegistrationCoordinatorFailedRecord.Trace(coordinator.EnlistmentId, coordinator.SuperiorContext, protocol, exception2);
                }
                DebugTrace.TraceSendFailure(coordinator.EnlistmentId, exception2);
                event2 = new MsgRegistrationCoordinatorSendFailureEvent(coordinator);
            }
            coordinator.StateMachine.Enqueue(event2);
        }
Example #2
0
 private void OnSendFaultComplete(IAsyncResult ar, DatagramProxy proxy)
 {
     try
     {
         proxy.EndSendMessage(ar);
     }
     catch (WsatSendFailureException exception)
     {
         Microsoft.Transactions.Bridge.DiagnosticUtility.ExceptionUtility.TraceHandledException(exception, TraceEventType.Warning);
         DebugTrace.TraceSendFailure(exception);
         this.state.Perf.MessageSendFailureCountPerInterval.Increment();
     }
 }
 private void OnSendComplete(IAsyncResult ar, CompletionEnlistment completion, CompletionParticipantProxy proxy)
 {
     try
     {
         proxy.EndSendMessage(ar);
     }
     catch (WsatSendFailureException exception)
     {
         Microsoft.Transactions.Bridge.DiagnosticUtility.ExceptionUtility.TraceHandledException(exception, TraceEventType.Warning);
         this.state.Perf.MessageSendFailureCountPerInterval.Increment();
         if (completion != null)
         {
             DebugTrace.TraceSendFailure(completion.EnlistmentId, exception);
         }
         else
         {
             DebugTrace.TraceSendFailure(exception);
         }
     }
 }
Example #4
0
        private void OnVolatileSendComplete(IAsyncResult ar, VolatileCoordinatorEnlistment volatileCoordinator)
        {
            Exception exception = null;

            try
            {
                volatileCoordinator.CoordinatorProxy.EndSendMessage(ar);
            }
            catch (WsatSendFailureException exception2)
            {
                Microsoft.Transactions.Bridge.DiagnosticUtility.ExceptionUtility.TraceHandledException(exception2, TraceEventType.Warning);
                DebugTrace.TraceSendFailure(volatileCoordinator.EnlistmentId, exception2);
                this.state.Perf.MessageSendFailureCountPerInterval.Increment();
                exception = exception2;
            }
            if (exception != null)
            {
                volatileCoordinator.StateMachine.Enqueue(new MsgVolatileCoordinatorSendFailureEvent(volatileCoordinator));
            }
        }
        private void OnSendComplete(IAsyncResult ar, ParticipantEnlistment participant)
        {
            Exception exception = null;

            try
            {
                participant.ParticipantProxy.EndSendMessage(ar);
            }
            catch (WsatSendFailureException exception2)
            {
                Microsoft.Transactions.Bridge.DiagnosticUtility.ExceptionUtility.TraceHandledException(exception2, TraceEventType.Warning);
                DebugTrace.TraceSendFailure(participant.EnlistmentId, exception2);
                this.state.Perf.MessageSendFailureCountPerInterval.Increment();
                exception = exception2;
            }
            if (exception != null)
            {
                participant.StateMachine.Enqueue(new MsgParticipantSendFailureEvent(participant));
            }
        }