示例#1
0
 public void Rollback()
 {
     try
     {
     }
     finally
     {
         this._transactionState = FluorineFx.Data.TransactionState.RolledBack;
     }
 }
示例#2
0
 public void Commit()
 {
     if (this._rollbackOnly)
     {
         this.Rollback();
     }
     else
     {
         try
         {
             int      num;
             IMessage message2;
             UpdateCollectionMessage message4;
             this.ProcessRefreshFills();
             this._pushMessages = new ArrayList();
             for (num = 0; num < this._processedMessageBatches.Count; num++)
             {
                 MessageBatch messageBatch = this._processedMessageBatches[num] as MessageBatch;
                 if ((messageBatch.Messages != null) && (messageBatch.Messages.Count > 0))
                 {
                     DataDestination destination = this._dataService.GetDestination(messageBatch.IncomingMessage) as DataDestination;
                     try
                     {
                         destination.SequenceManager.ManageMessageBatch(messageBatch, this);
                     }
                     catch (Exception exception)
                     {
                         ErrorMessage errorMessage = new MessageException(exception).GetErrorMessage();
                         errorMessage.correlationId = messageBatch.IncomingMessage.messageId;
                         errorMessage.destination   = messageBatch.IncomingMessage.destination;
                         messageBatch.Messages.Clear();
                         messageBatch.Messages.Add(errorMessage);
                     }
                     for (int i = 0; i < messageBatch.Messages.Count; i++)
                     {
                         message2 = messageBatch.Messages[i] as IMessage;
                         if (!(message2 is ErrorMessage))
                         {
                             this._pushMessages.Add(message2);
                         }
                     }
                 }
                 this._outgoingMessages.AddRange(messageBatch.Messages);
             }
             for (num = 0; num < this._pushMessages.Count; num++)
             {
                 message2 = this._pushMessages[num] as IMessage;
                 DataMessage message3 = message2 as DataMessage;
                 if (message3 != null)
                 {
                     this.PushMessage(this.GetSubscribers(message2), message2);
                 }
             }
             foreach (DictionaryEntry entry in this._clientUpdateCollectionMessages)
             {
                 message4 = entry.Value as UpdateCollectionMessage;
                 this._outgoingMessages.Add(message4);
                 this.PushMessage(this.GetSubscribers(message4), message4);
             }
             foreach (DictionaryEntry entry in this._updateCollectionMessages)
             {
                 message4 = entry.Value as UpdateCollectionMessage;
                 this._outgoingMessages.Add(message4);
                 this.PushMessage(this.GetSubscribers(message4), message4);
             }
         }
         finally
         {
             this._transactionState = FluorineFx.Data.TransactionState.Committed;
         }
     }
 }