Ejemplo n.º 1
0
        void IHandle <ReplicationMessage.WriteTransactionPrepare> .Handle(ReplicationMessage.WriteTransactionPrepare message)
        {
            Interlocked.Decrement(ref _flushMessagesInQueue);
            try
            {
                if (message.LiveUntil < DateTime.UtcNow)
                {
                    return;
                }

                var record = LogRecord.TransactionEnd(_writer.Checkpoint.ReadNonFlushed(),
                                                      message.CorrelationId,
                                                      Guid.NewGuid(),
                                                      message.TransactionId,
                                                      message.EventStreamId);
                WritePrepareWithRetry(record);
            }
            finally
            {
                Flush();
            }
        }
Ejemplo n.º 2
0
        void IHandle <ReplicationMessage.WriteTransactionPrepare> .Handle(ReplicationMessage.WriteTransactionPrepare message)
        {
            if (_state != VNodeState.Master)
            {
                throw new InvalidOperationException("Write request not in working state.");
            }
            Interlocked.Decrement(ref _flushMessagesInQueue);

            try
            {
                var record = LogRecord.TransactionEnd(_writer.Checkpoint.ReadNonFlushed(),
                                                      message.CorrelationId,
                                                      Guid.NewGuid(),
                                                      message.TransactionId,
                                                      message.EventStreamId);
                WritePrepareWithRetry(record);
            }
            finally
            {
                Flush();
            }
        }