void IHandle <StorageMessage.WriteTransactionPrepare> .Handle(StorageMessage.WriteTransactionPrepare message) { Interlocked.Decrement(ref FlushMessagesInQueue); try { if (message.LiveUntil < DateTime.UtcNow) { return; } var transactionInfo = _indexWriter.GetTransactionInfo(Writer.Checkpoint.Read(), message.TransactionId); if (!CheckTransactionInfo(message.TransactionId, transactionInfo)) { return; } var record = LogRecord.TransactionEnd(Writer.Checkpoint.ReadNonFlushed(), message.CorrelationId, Guid.NewGuid(), message.TransactionId, transactionInfo.EventStreamId); WritePrepareWithRetry(record); } catch (Exception exc) { Log.ErrorException(exc, "Exception in writer."); throw; } finally { Flush(); } }
void IHandle <StorageMessage.WriteTransactionPrepare> .Handle(StorageMessage.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(); } }